Skip to main content

Full text of "Byte Magazine Volume 03 Number 08 - Pascal"

See other formats


lie small systems journal 





ftoeferr 



lire 







S4.495.00 




/ 





j- 



-^ 






■Hi 



40K Bytes RAM Memory 

1,200,000 Bytes Disk Storage 

Desk with laminated plastic surface 

DOS and BASIC with random and sequential files 

TERMINAL-Upper-Lower case and full control character decoding 



T 



SOUTHWEST TECHNICAL PRODUCTS CORPORATION 
219 W. RHAPSODY 

SAN ANTON IO, TEXAS 782 1 6 Circle 350 on in 



Circle 350 on inquiry carrJ. 




/ 



\ 



Z-2D 



Model Z-2 

Up to 512K of RAM/ROM 



Model Z-2D 

One or two disks 

Up to 512K of RAM/ROM 

Up to 184K of disk 




System Two 

Dual disk 

Up to 512K of RAM/ROM 

Up to 184K of disk 



Fill your computer needs 

with the industry's 

most professional microcomputers 



#1 IN RELIABILITY 

When you choose Cromemco you 
get not only the industry's finest 
microcomputers but also the indus- 
try's widest microcomputer selec- 
tion. 

What's more, you get a computer 
from the manufacturer that compu- 
ter dealers rate #1 in product re- 
liability.* 

Your range of choice includes 
our advanced System Three with 
up to four 8" disk drives. Or choose 
from the System Two and Z-2D with 
5" drives. Then for ROM-based work 
there's the Z2. Each of these com- 
puters further offers up to Vz mega- 
byte of RAM (or ROM). 

We say these are the industry's 
most professional microcomputers 
because they have outstanding fea- 
tures like these: 

• Z-80A microprocessor — oper- 
ates at 250 nanosecond cycle 
time — nearly twice the speed of 
most others. 



Up to 512 kilobytes of RAM and 
1 megabyte of disk storage 




Rated in The 1977 Computer Store 
Survey by Image Resources, Westlake 
Village, CA. 









il 





System Three 

Two to tour disks 

Up to 512K of RAM/ROM 

Up to 1 megabyte of disk 



21 card slots to allow for un- 
paralleled system expansion us- 
ing industry-standard S-100 
cards. 

S-100 bus — don't overlook how 
important this is. It has the in- 
dustry's widest support and Cro- 
memco has professionally imple- 
mented it in a fully-shielded 
design. 



G 



• Cromemco card support of more 
than a dozen circuit cards for 
process control, business sys- 
tems, and data acquisition in- 
cluding cards for A-D and D-A 
conversion, for interfacing daisy- 
wheel or dot-matrix printers, even 
a card for programming PROMs. 

• The industry's most professional 
software support, including FOR- 
TRAN IV, 16K Disk-Extended 
BASIC, Z-80 Macro Assembler, 
Cromemco Multi-User Operating 
System — and more coming. 

• Rugged, professional all-metal 
construction for rack (or bench 
or floor cabinet) mounting. Cab- 
inets available. 

FOR TODAY AND TOMORROW 

Cromemco computers will meet 
your needs now and in the future 
because of their unquestioned tech- 
nical leadership, professionalism 
and enormous expandability. 

See them today at your dealer. 

There's no substitute for getting 
the best. 



Circle 80 on inquiry card. 



Cromemco 

incorporated 
Specialists in computers and peripherals 
280 BERNARDO AVE., MOUNTAIN VIEW, CA 94040 • (415) 964-7400 



see next T\ 
page I/ 



BYTE August 1978 



SEE YOUR LOCAL DEALER 



Anchorite. AK 99502 
ALASKA DIVERSIFIED DIGITAL 
I TOO Weil Hnteco Avenue 
{907} 277-6312 



•Utile Rock, AR 72206 
COMPUTER PRODUCTS UNLIMITED 
2412 South Broadway 
(JOIJ 371 0449 



Phoenli.AZ 85021 
COMPUTER RESEARCH CORP 
2225 W. Mm, View Roid - No. 6 
{602)943-8719 

Phoenix, AZ BS029 
COMPUTER WORLD 
22)0 Wen Larkipur 
(602) 943-8925 

Tucton, ■■.riiiiu 8S716 
BYTE SHOP OF TUCSON 
2612 E»1 Bruidwly 
(602) 127-1579 

• Cirion.CA 90746 

SUNSHINE COMPUTER COMPANY 
20710South Leip wood Avenue 
(213)127-2118 

•CIlruiHilghti.CA 95610 
BYTE SHOP SACRAMENTO 
6041 Greenback Line 
(916| 9*1-8 YTE 

EICerril O ,CA94S30 
COMPUTERLAND EL CERRITO 
11074 Sin Plblo Avenue 
(415) 233-5010 

• Fountain Villey, CA 92708 
ADVENTURES IN COMPUTING 
8756 Wnnei Avenue 
(714)848-8188 

Freino,CA 93703 
BYTE SHOP OF FRESNO 
3139 E. McKlnley Avenue 
(209)485-2417 

Hiywird.CA* 94542 
COMPUTERLAND OF HAYWARD 
22634 Foothill Boulevard 
(415) 51B-8080 

Huntington Beich. CA 92647 
ALGORITHM PERSONAL COMPUTERS 
7561 Rhine Drive 
(714) 751-8080 



6840 LiCicneii Unuh 



.' LOS ANGELES 



Liwndilc, CA 92060 
BYTE SHOP OF LAWNDALE 
6508 i i.iv. Hi,, mi,- Boulevard 
(213)171-2421 

* Loomn, CA 956S0 
KINGMONT ENTERPRISES, INC. 
9900 King Roid 
(916)988-8189 

Lot Angelei, CA 90025 
AMERICAN RECORDER COMPANY 
1655 Siwtelle Boulevard 
(211)477-2063 

MenloPirk.CA 94025 

COMPUTADATA PROCESSING SERVICE 

2225 Shuon Roid - No, 214 

Minion Vlejo, CA 92610 
COMPUTERLAND SADDLEBACK VLY 

24001 Vli Fibrltante - No. 904 
(714)77041131 

Moraga, CA 945S6 
ACCOUNTING BY COMPUTER 
1161 Litch Ave. 
(415)376-1730 

• Mounuln View, CA 94040 
BYTE OF MT. VIEW 
1061 W. EICiminoRtal 
(415)969-5464 

Orange, CA 92667 

COMPUTER MART 

631-B Weil Katella Boulevard 

(714)613.1222 

Palo Alio, CA 94106 
BYTE SHOP PALO ALTO 

2227 El Camlno Real 
(415) 327-8080 



912 Cowper Street 
(415)328-1712 

Plladena,CA91rOI 
BYTE SHOP PASADENA 
496 South Like Avenue 
1213)684-1111 

Plicervllle, CA 95667 
GRANITE BUSINESS SYSTEMS 
670 Pluunl Villey Roid 
{916)626-1161 

Sacramento, CA 95816 
MICROCOMPUTER APPLICATIONS SYS 
2122 Capllil Avenue 
(916)4334944 



Sin Diego, CA 92111 
THE COMPUTER CENTER 
B205 Roman Knid 
(714) 292-5102 

San Fnnciico.CA 94105 
COMPUTERLAND Or SAN FRANCISCO 
117 Fremont Street 
(415)546-1592 

•SinFrwelico. CA 94101 
THE COMPUTER STORE OF S.F. 
1091 Mluion Street 
(415)4114)640 

Sm Frinelico, CA9411B 

THE NETWORK 

495 Third Avenue - No. 8 

(415)221-1112 



•DENOTE5 SYSTEM THREE' DEALER 



Sin)oK,CA9S124 

BYTE SHOP »3 of SAN JOSE 

2626 Union Avenue 

(408) 377-46B5 

San |me,CA*95123 
THE COMPUTER ROOM 

124-H Illcmum HIM Rmi! 
(408) 226-8381 

San|oie,CA*95112 
PLANE DATA WORKS 
35B4 Mlnto Court 
(408) 262*566 

Sin Leindro, CA 94577 
COMPUTERLAND CORPORATION 

14400 Canlini Street 
(415) 895-9161 

• San Mileo,CA 94401 
COMPUTER TERMINAL 
309 S. San Mateo Drive 
(415)147-9894 

•SintlAnl.CA 92705 

ADVANCED MICROCOMPUTER PROP 

1310EinEd!nger 

(714)558-8811 

Santi Clara, CA950SI 

THE BYTE SHOP OF SANTA CLARA 
MODEM .imiiici Real 
(408) 249-4221 

Santa Monica, CA 90401 
THE COMPUTER STORE 
820 Broadway 
(213)451-0713 



•Sunnyulc.CA 94086 

RECREATIONAL COMPUTER CENTER 
1124 South Mary Avenue 
(408)732-3108 

Tuilln, CA 92680 

nWlULRLANDOFTUSTIN 
104 WrU Flnt Street 
(714) 544-0542 

•VanNuyi CA91411 



- van i^uyi, *,« vi-»i I 
COMPUTER COMPONENTS 
584B Sepulvedi Boulevard 



WilnulC<eek,CA 94596 
BYTE SHOP COMPUTERS OF D 
2989 N Main Street 
(415)933-6252 



Engkwoud.L 

in rr. shop 



E SHOP OF ARAPAHO COUNTY 
3463 South Acorn a Street 
(101)761-6122 

Flirf)eld,CT'0643O 
COMPUTERLAND OF FAIRFIELD 
2475 Black Rock Turnpike 
(201) 174-2227 



(203) 627-OtBB 

Newark, DE 19711 

COMPUTERLAND OF NEWCASTLE CIT 

Aitro Shopping Center 

Ku*v..,..il Highway 

(302) 738-9656 

Ft. Laude.dile, FL 33134 
BYTE OF FT. LAUOERDALE 
1044 E. Oiklind Park Blvd. 
(305)561-2981 

Fl.Liudcrdile,FL13312 
COMPUTERS FOR YOU, INC. 

1608 W. Broward Blvd. 
(305) 581-8945 



I'Utiijiiiin. FL 33317 
COMPUTERAGE 
1400 S.W. 70th Avenue 
(105) 79140B0 

• Tampa. FL 33609 

MICRO COMPUTER SYSTEMS 
144 S. D»le Mib.y Avenue 
(811) 8794225 

• Atlanta, GA 10140 
ATLAN1ACOMPUTERMART 
5091-UiiLifnrd Highway 
(404)455-0647 

Mirietli, GA 10060 

E0UCA I UINAL DATA SERVICES 

79 Oxford Run! 



•Honolulu. HI 96815 
COMPACT COMPUTERS 
105 Royal Hiwiilan. Ste. 407 
(808) 371-2751 

Kailua.Oihu.HI 96734 
MICROCOMPUTER ENTERPRISES 
1450 Mokulua Drive 
(308)261-3281 

Arlington Height!, I L 60004 
COMPUTERLAND ARLINGTON HTS. 
50 Eait Rand Road 
(312)255-6488 

Champaign, LL 61820 
BYTE SHOP CHAMPAIGN 
1602 S.Neil Struct 
(217)352-2121 

Chicago, 1L 60632 
URONSON 4 BRATTON, INC. 
5161 S.MIIIird Avenue 
(112)715*200 

Lltle.lL60532 

COMPUTER i CONTROL AFFILIATE 

4315 Aralei, No. 401 

(312)968-6548 

Lombard, II. 60U8 

MIDWEST MICROCOMPUTERS, INC. 

708 South Main Street 

(312) 495-9889 

Nipervillr, IL 60540 
ILLINI MICROCOMPUTERS 

612 EntOgden Avenue 
(312)420-8811 

Nile). IL 60648 
COMPUTERLAND NILES 
9511 N, Milwaukee Avenue 
(112)967-1714 



BYTE August 1978 



G 



Oak Lawn, IL 60453 

LOMI'lJ TEKLANDOF OAK LAWN 

10915 South Cicero Avenue 

(1121422-8080 

Rockford, IL6III11 

IMPERIAL COMPU N.R SYSTEMS 

2105 - 23rd Avenue 

(815) 226-8200 



• Bloomlnglon, IN 47401 
DATA DOMAIN 

406 South College Avenue 
(812)334-3607 

■Fort Wayne, IN 46805 
DATA DOMAIN OF FORI WAYNE 
2805 Em State Boulevard 
(219)484-7611 

Indlinipolli, IN 46268 

DATA DOMAIN OF INDIANAPOLIS 

7027 Michigan Road 

(317) 251-1139 

Wen Lafayette. IN 47906 

DA I A DOMAIN OF WLS1 LAFAYETTE 

219 WrnColuml.li 

(117)743-3951 

Mliilun.KS 66202 
COMPUTER CENTER 
5815 Johmon Drive 
(913) 432-2983 

Overland Park, KS 66206 

PERSONAL COMPUTER CENTER, INC. 

3819 W. 95lhSlreel 

(913)649-5942 

Lexington, KY 40501 

DATA DOMAIN OF LEXINGTON 

506-1/2 Euclid Avenue 

(606) 233-3346 

Loulivlile. KY 40222 
COMPUTERLAND OF LOUISVILLE 
Mill Lyndon Lane 
(502) 425-8308 

Louisville, KY 40220 

DATA DOMAIN OF LOUISVILLE 

1028 Huoiioger Line 

[502) 456-5242 

Louisville. KY 40206 

PHAC.MATECH 

2310 Mellwood Avenue 

(502) H95-1230 

• Burlington, MAOI803 
THE COMPUTER STORE 
120 Cambridge Street 
(617)272-8770 



INTELLIGENT BUSINESS MACHINES 
7338 Baltimore, Avenue, Suite 200 
(301) 779-7998 

• Pikr^ille.MD 21208 
MODULAR SYSTEMS. INC 
4005 Seven Mile Line 
(301)484-6322 

• Rockvllle, MD 20852 
COMPUTER WORKSHOP 
1776 Edit JeMenon 
(301)468-0463 

Rwkville. MD 20855 
COMPUTERLAND OF GAITHERS8URG 
160*5 Frederick Road, Route 155 
(Kill 948-7676 

Silver Spring, MD 20901 

CAM ENGINEERING, INC. 

'Mill W.iiiIi Avenue 
(301)589-1779 

•Towion.MD 21204 
CUMI'lirERSETC 
13-A Allegheny Avenue 
(101| 296-0520 

Ann Arbor, Ml 48104 

NEWMAN COMPUTER EXCHANGE 

1250 North Main Street 

(313)9944445 

Ann Arbor, Ml 48104 
THE COMPUTER STORE 

HOEitt Waihlniilon 
(313(995-7616 

Ann Arbor, Ml 48104 
UNITED MICROSYSTEMS CORP 
2601 South Stale Street 
(313) 66S-6B06 

•Berrien Spring*, Ml 49101 
THE ABACUS 

Route No. I, Bo. 193,(Nllci Avenue] 
(616) 429-1014 

Grand Rapidi, Ml 49508 

IEP5AN, GROUP K 

4706 Morningiide Drive.S.E. 

(616)698-9057 

RoyilOik,MI48071 
COMPUTER MART OF ROYAL OAK 
1800 Weil 14 Mile Road 
(313) 576-0900 

Edina.MN 55415 
COMPUTER PEPOT, INC 
1515 Wen 70th Street 
(612)927-5601 

Cheiterlield. MO 61017 
COMPUTER SYSTEMS CTR ST. LOUIS 
11461 Olive Boulevard 
(114)576-5020 

Like St. Louli, MO 63367 
DATA DYNAMICS, INC. 
UWOLakeSi.nl Blvd. , Str. 324 
1114)625-2400 

Naihua, NH 01060 
COMPUTERLAND 01 NASHUA 
419Amheril 
(601)889-5238 

Huboken, N] 07010 
HOBOKEN COMPUTER WORKS 
No. 20 Hudion Place 
(201)4201644 

•Ivclln, Nj 08810 
COMPUTER MART OF NEW JERSEY 

501 Route No. 27 
(201) 2f 



Merrlflown, N| O7960 
COMPUTERLAND Of MORRTSTOWN 
2 Do Hirt Strecl 
(201)5394077 

Reno, NV 89502 

BYTE SHOP OF RENO 

(702)826-8081) 



1612 Niagara Falli Boulevard 
(716)816*511 



CORSON COMPUTER CORP., INC. 
IBM Main Street 
(716)8120662 

De Witt, NY 11214 
COMPU 1 1 I! LM [.UPRISES 
3470 Erie Boulevard East 
(115)446-1284 



SYNCHRO-SOUND ENTERPRISES 
193-25 Jamaica Avenue 
(212)468-7067 

Ithaca, MY 14850 

COMPUTERLAND OF ITHACA 

225 Elmiu Road 
|607| 27748B8 

New York City. NY 10016 
HYTT SHOP EAST 
130 E. 40th Street 
(21 2) 8894204 



• Urwrinnjii. OH 4S409 
DIGITAL DESIGN 
7694 Camargo Rd. (MidlenJ 
(513)561-6711 



1513)223-2348 

Kent, OH 44240 
OHIO MICRO SYSTEMS 
233 Soulli Witer Street 
(216)678-5202 



Oklahoma City. OK 73106 

HIGH TECHNOLOGY 
1611 Northwest 21rdSlreet 
(405) 528-6008 

Beivenun. OR 97005 

BYTE SHOP OF BEAVERTON 

1482 S.W Cedar Hlllt Boulevard 

(503)644-2687 

Eugene. OR 97401 

REAL OREGON COMPUTER CO. 

205 Welt Tenth Street. P.O. tin . 52 

(503)484-1040 

• Tualatin, OR*97062 
CREATIVE SYSTEMS 
8101 S.W. NybergRoad 
(503) 638 8406 

Allison Park, PA 15T0I 
R. DON KRIGGER 
9180 Springfield Drive 
(412)1644945 

Huntington Valley, PA 19006 
MAKKI MINI SYSTEMS, INC. 
2337 Philmum Avenue 
(215)947*670 

King of PruHia.PA 19406 
COMPUTER MART OF PENNSYLVANIA 
550 DeKalb Pike (Route 202) 
(21S) 265-2580 



7250McNlght Road 



Warwick, Rl 02886 
COMPUTER POWER, INC. 
1800 Poil Roid 
(401) 7184477 

• Columbla.se 29205 

BYTE SHOP OF COLUMBIA 
2018 Green Street 
(803) 771-7824 

Memphli. TN 38101 
COMPUTER STORE 
2162 Cour Hand Plice 
(901)274-1938 

Naihvrlle, IN 37206 
COMPUTER WORLD 
625 Main Street 
(615(244*094 

•Naihvllle.TN 17211 
SURYA CORPORATION 
5755 Nulemville Rmd 
1615)834-5638 

Amarillo, TX 79109 
COMPUTER CORNER. INC. 
1800 South Georgia St. . No. 1 
(806)151-4194 

• Auitin.TX 78711 
COMPUTERS'N THINGS 
2825 Hineuck Drive 
(512)453-5970 

• CorpuiChtliti,TX 7B411 
MICRO SYSTEMS SERVICES, INC. 
5101 Everlian, Spice H-P.O. Box 6515 
(512)8554516 

■Dallii. TX 75241 
COMPUSHOP 

21 1 Keyjton Park. 11931 Nnrth Central 
(214) 234-3411 

•Houtlon.TX 77057 

COMPUTERLAND OF S.W. HOUSTON 

6439 Weithelmer 

[713)9774)909 

•HoUiton,TX*770O6 
COMPUIERTEX 
2100 Richmond Avenue 
(711) 126*914 

Houiton, TX 77036 
INTERACTIVE COMPUTERS 
7646-1/7 Daihwood. P.O. Bat 16584 

(711)977-7017 



Cromemco 

incorporated 
Specialists in computers and peripherals 
280 BERNARDO AVE., MOUNTAIN VIEW, CA • (415) 964-7400 



• Houtlon.TX 77098 
THE MOS 

1851 Richmond Avenue 
(711) 527-SOOS 

Lubbock, TX 79412 
COMPUTER MART OF W TEXAS 
3506 D Avenue, Q 
(606) 765-7134 

Rlchardton, TX 75080 

THE MICRO STORE 

614 South Central Expreuwiy 

(214)231-1096 

Provo.UT 84601 

THE COMPUTER WORKS 

735 South Sine Street, P 0. Box N 

(801)371-7522 

Alexandria VA 22104 
COMPUTERS PLUS, INC. 
678 S. Pickett Street 
(701) 751-5656 

McLein.VA 22101 

COMPU TER SYSTEMS STORE 

1984 Chiln Bridge Roid 
(703) 821-8331 

Seattle, WA 981 15 

THE RETAIL COMPUTER STORE 

410 NE. 72nd Street 

(206) 5244101 

•Appleton.WI 54911 
SOUND WORLD, INC. 
3015 W. Wiieontin Avenue 
(414) 714-7698 



Milwaukee. Wl 51208 
MILWAUKEE COMPUTER STORE 
4710 Welt North Avenue 
(414)4454280 

•Racine. Wl 51405 

COLORTRON TV 
2111 Lath top Avenue 
(414)637-2001 



INTERNATIONAL • 



SONTROM INSTRUMENTS 
17 An* am Street 
56043118 

Croydon, Vict., Auitnlli, 3136 
COMPUTER ART & EDUCATION 
2 Stephen Creicent 



Prahran, Victoria, Auitralia, 1181 
GEMINI MICRO COMPUTERS 
P.O. Box 99 

Wet! Perth, 6005. W. Auil'l'l 
AUSTRALIAN COMPUTER PRODUCTS 
1100 Hay Street 
(09L122-6497 



• A-240lFiinamen 
KREBSGES. M.E 

Hilnburger Stnbi 
03232681 8221 



Montreal, Quebec, Can. II in 3C9 
FUTUR BYTE, INC 
1191 Phillip* Squire 
(514)861-3120 

Toronto, On!., Can. M4G 1B5 
COMPUTER MART. LTD. 
1543 Bayview Avenue 
(416) 484-9708 

Toronto, Out., On. M4R 1A1 

FIRST CANADIAN COMPUTER STORE 

44 Eilinlon Avenue Wen 

(416)482-8080 

Toronto, One, Can. MS Y 121 
TRINTRON1C5. LTD. 
186 Queen Street Weil 
(416) 59843260 



• Lllllr Paitnn, Huntingdon. Cainbi 
Camb.., EnglindPEIWNI 
COMART LIMITED 
24A Market Squire 
0480-215-005 

Pirli 75017, France 
COMPUTER BOUTIQUE 
149 Avenue de Wagrun 

Chiyodi-Ky, Tokyo 101. |ipan 
BYTE SHOP SOGOH 
l**Sotokindi 
03 255-1984 

Kaihlwa City Chibi Pf. 277, |ipan 
BELLKEYTEC. INC 
5-9.2-Chome Kip 

Tokyo 106, Japan 

IEE CORPORATION 

4-33, 3-Chome. Ropongl, Mlniioka 

(03) 585-2311 



Mikiti, Rinl. The PhHIIplnct 
DECISION SYSTEMS CORP. 
ISOAmonoloSt iPiuvRd. 
Legiipl Village 

• tO052 Stockholm 29. Sweden 
DATORISERING KONSULT AH 

Full 3 

4051 bawl. Swltierlind 
EUREX.INC 
Belnwller Str. T3 
061-157069 



•Hlltrun 4400, Mumtw, W. Germany 
BASIS MICROCOMPUTER VERTRIEB 
Von-Flotow-Strabe 5 
025014800 

• 2000 Wedd, Hpneln, W. Germany 
DIGITRONlctOMPUTERSYSTEME 






Circle 80 on inquiry card. 



In the Queue 



50 

78 
143 
156 



24 

64 

90 

96 

110 

122 

166 

168 



4 

6 

10 

12 

16 

46 

48 

62 

89 

117 

118 

177 

206 

208 

208 



Foreground 



COMPILATION AND PASCAL ON THE NEW MICROPROCESSORS 

Tu torial—Forsy th -Ho ward 
PASCAL: A Structurally Strong Language 

Languages— A Ipert 
DESIGNING STRUCTURED PROGRAMS 

Programming Techniques— Weems 
LET YOUR FINGERS DO THE TALKING: Adda Noncontact Touch Scanner 

Hardware— Ciarcia 



Background 



ON BUILDING A LIGHT-SEEKING ROBOT MECHANISM 

Robotics Applications— Allen-Rossetti 
THE NUMBER CRUNCHING PROCESSOR 

Hardware— Nelson 
PHILADELPHIA'S 179 YEAR OLD ANDROID 

History— Penniman 
ANTIQUE MECHANICAL COMPUTERS, Part 2 

History— Williams 
IN PRAISE OF PASCAL 

Software— Mundie 
PASCAL VERSUS COBOL: Where Pascal Gets Down to Business 

Software— Bowles 
JACPOT 

Games— Hastings 
PASCAL VERSUS BASIC: An Exercise 

Software— Sen wartz 



Nucleus 



BITE August 1978 
Volume 3 Number 8 



In This BYTE 

A Vision of an Industry 

Letters 

Technical Forum: A Letter Exchange: Extending S-100 Bus? 

And Some Notes by John C McCallum 
About the Cover 

Languages Forum: A Homebrew Pascal Compiler 
Clubs, Newsletters 
BYTE's Bugs 

Consistency — or a Lack Thereof. . .Notes by C Helmers 
Languages Forum: A Proposed Pascal Compiler 
Event Queue 
What's New? 
Unclassified Ads 
BOMB 
Reader Service 




BYTE is published monthly by BYTE Publications Inc. 70 Main St, Peterborough NH 03458. Address all mail except sub- 
scriptions to above address: phone (603) 924-7217. Address all editorial correspondence to the editor at the above address. 
Unacceptable manuscripts will be returned if accompanied by sufficient first class postage. Not responsible for lost manu- 
scripts or photos. Opinions expressed by the authors are not necessarily those of BYTE. Address all subscriptions, change of 
address. Form 3579. and fulfillment complaints to BYTE Subscriptions, PO Box 590. Martinsville NJ 08836. Second class 
postage paid at Peterborough NH 03458 and at additional mailing offices-USPS Publication No. 102410. Canadian second 
class registration No. 9321 . Subscriptions are $15 for one year, $27 for two years, and $39 for three years in the USA and its 
possessions. In Canada and Mexico, $17.50 for one year, $32 for two years, and $46.50 for three years. $25 for a one year 
subscription by surface mail worldwide. Air delivery to selected areas at additional rates available upon request. $25 for a one 
year subscription by air delivery to Europe. Single copy price is $2.00 in the USA and its possessions, $2.40 in Canada and 
Mexico, S3. 50 in Europe, and $4.00 elsewhere. Foreign subscriptions and sales should be remitted in United States funds. 
Printed in United States of America. Each separate contribution to this issue and the issue as a collective work copyright © 
1978 by BYTE Publication Inc. All rights reserved. 

Subscription WATS Line: (800) 258-5485 



PUBLISHERS 

Virginia Londoner 

Gordon R Williamson 

EDITOR IN CHIEF 

Carl T Helmeis |r 

VICE PRESIDENT, PRODUCTION 

Judith Havey 

PRODUCTION MANAGER 

Karen Gregory 

ADVERTISING DIRECTOR 

John Hayes 

CIRCULATION MANAGER 

Gregory Spitzfaden 

SENIOR EDITOR 

Christopher P Morgan 

COMPTROLLER 

Michael Gaian 

EDITOR 

Raymond G A Cote 

PRODUCTION EDITORS 

David William Hayward 

Nancy Salmon 

NEW PRODUCTS EDITOR 

CLUBS, NEWSLETTERS 

Laura A Hanson 

ASSISTANT TO COMPTROLLER 

Ruth M Walsh 

EDITORIAL ASSISTANT 

Becky Liffick 

ADVERTISING 

Noreen Bardsley 

lillCallihan 

Patricia Clark 

PRODUCTION ASSISTANT 

Cheryl A Hurd 

CIRCULATION ASSISTANTS 

Sarah Bauhan 

Christine Dixon 

Ann Graves 

Pamela R Heaslip 

DEALER SALES 

Ginnie F Boudrieau 

TRAFFIC MANAGER 

Thomas Harvey 

PRODUCTION ART 

Stephen Kruse 

Wai Chiu Li 

Dorothy Shamonsky 

Ellen Shamonsky 

RECEPTIONIST 

Jacqueline Earnshaw 

DRAFTING 

Techart Associates 

TYPOGRAPHY 

Goodway Graphics 

PHOTOGRAPHY 

Ed Crabtree 

PRINTING 

The George Banla Company 

ASSOCIATE EDITOR 

Daniel Fylstra 

ASSOCIATES 

Walter Banks 

Steve Ciarcia 

David Fylstra 

Portia Isaacson 

BOOK DIVISION 

PUBLISHER 
Thomas | Herman 
SENIOR EDITOR 
Blaise W Liffick 
PRODUCTION MANAGER 
EdmondC Kelly |r 
ASSISTANT EDITOR 
Richard Shuford 

ADVERTISING SALES REPRESENTATIVES: 

EAST, MIDWEST 

Hajar Associates Inc 

1 7 Durant St 

West Ronbury MA 02132 

(617)325-5380 

100 W Chicago Av 
Chicago IL 60610 
(312)337-8008 

WEST, SOUTHWEST 
Buckley /Boris Associates Inc 
912 South Barrington. Suite 202 
Los Angeles CA 90049 
(213I82M621 

DISTRIBUTORS: 
EASTERN CANADA 
RS-232 Distribution Company 
186 Queen St W. Suite 232 
Toronto ONTARIO 
WESTERN CANADA 
Kitronic Ltd 
26236 26th AvRR 5 
Aldergrove BC VOX 1A0 



August 1978 ©BYTE Publications Inc 



In This EWE 



What are readers' experiences with 
building actual robotic mechanisms? 
Stephen A Allen and Anthony J 
Rossetti's commentary On Building 
a Light-Seeking Robot Mechanism 
describes their work in this area on 
an undergraduate engineering project. 
An on board computer helps their 
robot decide what action to take when 
avoiding obstacles between it and a 
light source. 




page 24 

Until now microprocessor users had 
the choice of using either an 8 bit or a 
16 bit processor. With the advent of 
the 6809, Z-8000 and 8086, we now 
have available a hybrid machine with 
both 8 and 16 bit capabilities. This 
may have an effect on how language 
are written on the processors. Charles 
H Forsyth and Randall J Howard take 
a look at this in Compilation and 
Pascal on the New Microprocessors. 

page 50 

Do you need to perform extensive 
mathematical calculations, but fret 
over the time needed to write, debug 
and use floating point operations and 



transcendental functions? The new 
National Semiconductor MM57109 
processor will help you with this 
problem. Turn to The Number 
Crunching Processor by Peter Nelson 
for details on how to interface an 
MM57109 with an 8080 system, and 
a review of this unique processor. 

page 64 

Pascal is the fastest growing new 
computer language. Few languages 
have the support from the typical 
university computer science depart- 
ment that Pascal has. To find out more 
about this fascinating language read 
Steven R Alpert's article, Pascal, 
a Structurally Strong Language. 

page 78 

A 179 year old android that can 
draw pictures and write poetry? It 
may sound like science fiction, but 
The Franklin Institute's Charles F 
Penniman reveals all in Philadelphia's 
1 79 Year Old Android. page 90 

This month we continue Dr James 
Williams' 3 part series on Antique 
Mechanical Computers with Part 2: 
18th and 19th Century Mechanical 
Marvels. Read about Jacquet-Droz's 
incredible writing and drawing auto- 
maton that contains the equivalent 
of three quarters of a million bits of 
read only memory and can draw in- 
tricate pictures and transcribe poetry. 

page 96 

Using a structured language such as 
Pascal helps the programmer easily 
organize the logic of a program. Often, 
it is not necessary to write a logic dia- 
gram for the program. To this end, 
David Mundie compares a well written 
Pascal program to a Warnier-Orr logic 
diagram in his article In Praise of 
Pascal. page 110 

Business applications for personal 
computers are more and more in evi- 
dence these days. Pascal lends itself 
well to business applications with the 
addition of some special features 
described by Ken Bowles in Pascal 
versus COBOL. page 122 



One of the newest developments in 
software is structured programming. 
Many features of the technique have 
been described, but often the actual 
procedure for constructing a struc- 
tured program is not mentioned. 
Chip Weems describes the steps in- 
volved in Designing a Structured 
Program. 




page 143 

Light pens are one way to improve 
the user-computer interface, but 
there's an even more direct way: a 
noncontact scanning digitizer. Simply 
touch the screen of your video display 
to enter information! Steve Ciarcia 
shows you how in Let Your Fingers 
Do the Talking: Add a Noncontact 
Touch Scanner to Your Video Display. 

page 156 

If you like to gamble, but don't 
want to wait for legalized gambling in 
your state, try JACPOT. Author 
Edwin Hastings has written a straight- 
forward BASIC simulation of a slot 
machine. Now you can gamble (for 
fun only, of course) to your heart's 
content without depleting your bank 
account. You can lose everything 
and then turn around and lose it again! 

page 166 

Pascal is an exciting language that 
can help you program more effi- 
ciently. It was developed in 1969 
as an extension of the ALGOL family 
of languages. Author Allan Schwartz 
compares Pascal to BASIC, a language 
familiar to many BYTE readers, in 
Pascal versus BASIC: An Exercise. 

page 168 



August 7978 ©BYTE Publications Inc 



Identical twins...almost. 




This one prints. 
$395. 



This one prints & plots. 
$795. 



In 1977, AXIOM pioneered low-cost 
electrosensitive line printing, setting an 
example which others have been quick 
to follow. 

However, we believe that once you 
are the market leader, you should stay 
out in front. So we're proud to announce 
the birth of two exceptional new 
products, the EX-801 MicroPrinter 
and the EX-820 MicroPlotter which set 
new standards for versatile low-cost 
hardcopy. 

These babies are beautiful , housed in 
sleek molded cases designed by the 
award-winning Inova design group. But 
beauty is more than skin deep. Each 
unit is packed with unique features. Like 
serial RS232C/20mA and parallel ASCII 
inputs as standard. Reverse printing. 
Oversized input buffers. Expandable 
character sets. User program memory 
for real "intelligence." 

Twins, yes, identical, not quite. . . . 

Meet the MicroPrinter 

Here's the answer to a micro (or mini) 
computer's fondest dreams. Designed 
around the Intel 8048 microprocessor, 
the EX-801 MicroPrinter operates to 
160 cps (that's 14 times faster than a 
TTY), and gives you the choice of 3 



intermixable character sizes to provide 
80, 40 or 20 columns on 5-inch wide 
electrosensitive paper, making this 
printer ideal for CRT hardcopy, data 
logging, remote message printing, 
program listing, record keeping ... In 
fact, any application needing fast, 
low-cost copy. 

Introducing the MicroPlotter 

Our EX-820 MicroPlotter does 
everything the EX-801 does — plus it 
plots. Under software control, you have 
unlimited flexibility to mix alphanumeric 
ASCII and graphics on any line. Just 
define the size of each graphic field, 
and choose from 3 pre-programmed 
dot resolutions up to 128 dots per inch. 
Once the fields have been defined, the 
EX-820 automatically formats graphic 
and alphanumeric printouts to 
your specs. 

Complete stand-alones 

The EX-801 and EX-820 are both 
complete stand-alone units, including 
molded case, power supply, parallel 
ASCII and Serial RS232C/20mA 
interfaces, character generator, low 
paper detector, bell, built-in self tester 
and paper roll holder. Not to mention 
a whole range of fantastic low-cost 



options like 2K character buffer, 256 
character set and user PROM memory. 

Any questions??? 

OEM discounts? The above prices 
are single quantity end-user. If you're 
an OEM they sound even better. 
Distributors? Everywhere in the USA 
and in 18 overseas countries. Service? 
Just call one of our 20 nationwide 
service centers. Maintenance? Minimal. 
The printhead is self-adjusting and 
there are no inky ribbons to change. 
MTBF? 11.6 million lines. Need we 
say more? 

Whether you need sophisticated 
graphics or simple printout, AXIOM 
still has the lowest cost, highest 
performance printers in the field — so 
we're still the market leaders. Phone or 
write today for the whole story on our 
almost identical twins. 



AXIOM CORPORATION 



5932 San Fernando Rd ., Glendale, CA 91202 
(213) 245-9244 • TWX: 910-497-2283 



Circle 18 on inquiry card. 



BYTE August 1978 



Editorial 



A Vision of an Industry 



By Carl Helmers 



Based on a computer 
graphic suggestion by 
students Joel McCormack 
and Owen Hampton at 
UCSD, we arranged with 
Russell Myers for this 
statement of an extreme 
opinion about Pascal. . . . 



In mid-March of this year, I finished a 
trip to the West Coast by having a day long 
meeting with Ken Bowles and his associates 
at the University of California, San Diego. 
The purpose of this meeting was to explore 
some of the possibilities which arise from 
the standardization of extensions to Niklaus 
Wirth's language Pascal, and the equally 
important implications of the technology of 
intermediate languages such as the optimized 
form of "P-code" developed at UCSD. 

I came to this meeting with a background 
of familiarity with the reasons for encour- 
aging highly structured languages such as 
Pascal. Before starting BYTE, I had been 
involved with the NASA HAL/S language 
developed by my employer of the time, 
Intermetrics Inc of Cambridge MA. I lived 
and breathed considerations of software 
reliability, ease of program design and the 
conceptual economy of a detailed program 
representation which doubles as the docu- 
mentation of the algorithm. My personal 
experiences were with the context of the 
need to "man rate" the flight software of a 



"UCSD Pascal' 




contemporary spaceship through the use of 
high reliability software tools and techniques. 
These points are made elegantly in a number 
of books and papers which have been 
published on the subject to date. 

What came out of this meeting with Ken 
Bowles is a vision of an important synthesis 
of machine independent software representa- 
tions, the technology of printing machine 
readable software on paper, and the distribu- 
tion of software in the form of convention- 
ally printed and bound publications. It is a 
vision of what the software publishing 
business could look like over the course of 
the next few years. 

Out of this vision of a machine independ- 
ent software publishing industry comes a 
serendipitous justification for support of 
Ken Bowles' efforts to establish a "band- 
wagon" effect of support for the Pascal 
language and machine independent software 
systems. The purpose of this essay is to 
discuss the present dimensions of the soft- 
ware publishing problem, the technology 
which exists for preparing and printing 
machine readable representations, and the 
vision of machine independent software 
publishing which Ken Bowles and I saw 
inherent in the Pascal P-code technology as 
we discussed it that day. 

Publishing Software 

As the users of the personal computer 
expand in number, the means of distribution 
of software become critical to those who 
would distribute such software. In personal 
computing we are faced with a kind of 
problem which is completely new in the 
computer industries: the number of machines 
installed is becoming incredibly large by 
standards of the past 20 years, and the price 
paid per unit installation is becoming incred- 
ibly small. The computers which are a 
potential market for software are in the 
initial stages of becoming a mass market: too 
large a market for the custom craftsmanship 
of the traditional software vendor. To be 
convenient for the customers programs must 
be distributed with a machine readable copy 
which eliminates the need for hand key- 
Continued on page 133 



6 Augusl 1978 © BYTE Publications Inc 



PASCAL 




THE NMS'85 SEW 
NORTHWEST MlC jflfigjyl PUT 

121 EAST ELEVENTH. EUGENE, OREGON 97401 (503)485-0626 




Circle 286 on inquiry card. 



BYTE August 1978 7 







Sol Terminal Computer 




The answer is a 



It's the serious 
solution to the 
small computer 
question. 

Sol Systems are the key to effective, economical 
small computer power. Sol Systems give you the force of a 
powerful general purpose computer, the problem solving 
capability of high level languages and the operational simplicity 
of everyday office equipment. 

From the ground up, Sol Systems were designed to do 
a complete job without adding a load of costly extras. In fact, 
when you compare the "everything included" price of 
a quality, field proven Sol System with anything else on the 
market, you'll be happily surprised to find out how little 
the extra performance and convenience costs. 



For example, complete Sol Systems with 16,384 bytes 
of RAM memory start at less than $2500? Expanded systems 
with 49,152 bytes of RAM memory, 1.5 million bytes of 
on-line disk memory, disk operating system and Extended 
Disk BASIC cost less than $8000? Both systems are fully 
assembled, burned-in, tested and ready to go. 

Sol Compatibility 

Sol Systems feature the S-100 bus for pin-to-pin 
compatibility with a wide variety of add-on devices such as 
voice input and computer graphics. Standard Sol 
parallel and serial interfaces will drive most standard printers, 
modems and other peripherals. 

A word about languages 

No system is complete without software, and at Processor 
Technology we have tailored a group of high level languages, 
an assembler and other packages to suit the wide capabilities 
of our hardware. 

Take a look at our exclusive Extended BASIC as an example. 
In cassette form, this BASIC features string and advanced 

"U.S. prices only. 




Sol System. 



file handling, special screen commands, timed input, complete 
matrix, logarithmic and trigonometric functions, exponen- 
tial numbers, 8 digit precision and square root. The language 
handles serial access files, provides tape rewind and 
offers cursor control for graphics capability. 

The disk version has all the number crunching talents 
of the cassette BASIC plus instant access to data and programs 
on floppy disks. It includes random as well as sequential 
files and a unique ability to update sequential data in place. 

Processor Technology FORTRAN is similar to FORTRAN IV 
and has a full set of extensions designed for the "stand alone" 
computer environment. Thousands of special application 
programs available through books and periodicals have already 
been written in this well established language. 

Processor Technology PILOT is an excellent language 
for teachers. It is a string-oriented language designed expressly 
for interactive applications such as programmed instruction, 
drill and testing. 

No wonder we call it the serious solution 
to the small computer question. 

It's the small computer system to do the general ledger and 



the payroll. Solve engineering and scientific problems. 
Use it for word processing. Program it for computer aided 
instruction. Use it anywhere you want versatile 
computer power! 

Sold and serviced only by the best dealers. 

Sol Systems are sold and serviced by an outstanding group 
of conveniently located computer stores throughout the 
United States and Canada. They are also available in Australia, 
Europe, the United Kingdom, Central America, South 
America, Japan and Singapore. 

For more information contact your nearest dealer listed on 
the following page. Or write Department B, Processor 
Technology Corporation, 7100 Johnson Industrial Drive, 
Pleasanton, CA 94566. Phone (415) 829-2600. 

Circle 305 on inquiry card. 



ProcessorTechnology 



Your 

Sol dealer 

has it. 

AL Birmingham: ICP. Computerland, 1550-D 
Montgomery Hwy, (205)979-0707. AZ: Tempe: 
Byte Shop, 1425 W. 12th PI., (602)894-1129; 
Phoenix: Byte Shop, 12654 N. 28th, (602) 
942-7300; Tucson: Byte Shop, 261 2 E. Broadway, 
(602)327-4579. CA: Berkeley: Byte Shop, 
1514 University, (415)845-6366; Costa Mesa: 
Computer Center, 1913 Harbor, (714) 
646-0221; Hayward: Byte Shop, 1122"B"St., 
(415)537-2983; Hayward: Computerland of 
Hayward, 22634 Foothill Blvd., (415)538-8080; 
Lawndale: Byte Shop, 16508 Hawthorne. 
(213)371-2421; Mt. View: Byte Shop, 1063 El 
Camino, (415)969-5464; Mt. View: Digital 
Deli, 80 W. El Camino, (415)961-2670; Orange: 
Computer Mart, 633- B W. Katella, (714) 
633-1222; Pasadena: Byte Shop, 496 S. Lake, 
(213)684-3311; Sacramento: Micro-Computer 
Application Systems, 2322 Capitol. (916) 
443-4944; San Francisco: Byte Shop, 321 Pacific. 
(415)421-8686; San Jose: Byte Shop, 2626 
Union, (408)377-4685; San Rafael: Byte Shop, 
509 Francisco, (41 5)457-931 1;Tarzana: Byte 
Shop, 18424 Ventura. (213)343-3919; Walnut 
Creek: Byte Shop, 2989 N. Main, (415)933-6252. 
CO; Boulder: Byte Shop, 3101 Walnut. 
(303)449-6233; Denver: Byte Shop, E. 1st Ave. & 
University. (304)399-8995. FL: Ft. Lauderdale: 
Byte Shop, 1044 E. Oakland Pk., (305)561-2983; 
Miami: Byte Shop, 7825 Bird, (305)264-2983; 
Tampa: Microcomputer Systems, 144 So. Dale 
Mabry. (813)879-4301. GA; Atlanta: Computer 
Mart, 5091-B Buford, (404)455-0647. IL: 
Champaign: Computer Co., 318 N. Neil. (217) 
359-5883; Numbers Racket, 623'/2 S. Wright, 
(217)352-5435; Evanston: itty bitty machine co. 
1322 Chicago, (312)328-6800; Schaumburg: 
Data Domain, 1612 E. Algonquin, (312) 397-8700. 
IN: Bloomington: Data Domain, 406S. College. 
(812)334-3607; Indianapolis: Data Domain, 7027 
N. Michigan, (317)251-3139. IA: Davenport: 
Computer Store, 4128 Brady. (319)386-3330. 
KS: Overland Park: Personal Computer Center, 
3819 W 95th St., (913)649-5942. MA: Boston; 
Computer Warehouse Store, 584 Commonwealth, 
(617)261-2700. MD: Towson: Computer Etc.. 
1 3A Allegheny, (301 )296-0520. Ml: Ann Arbor: 
Computer Store, 310 E. Washington, (313) 
995-7616; East Lansing: General ComputerStore, 
1310 Michigan. (517)351-3260; Troy: General 
Computer Store. 73 W. Long Lake Rd., (313) 
689-8321 . MN: Minneapolis: Computer 
Depot, 351 5 W. 70th, (61 2)927-5601 . NJ: Cherry 
Hill: Computer Emporium, 2438 Route 38, 
(609)667-7555; Hoboken: Computer Works. 20 
Hudson PL, (201)420-1644; Iselin: Computer 
Mart, 501 Rt. 27, (201)283-0600. NYl Endwell: 
The Computer Tree, 409 Hooper Rd., (607) 
748-1 223; New York:Computer Mart, 118 Madison, 
(212)686-7923; White Plains: Computer 
Corner, 200 Hamilton. (914)949-3282. NC: 
Raleigh: ROMs N' RAMs, Crabtree Valley 
Mall, (919)781-0003. OH: Columbus: Byte Shop. 
2432 Chester, (614)486-7761; Dayton: 
Computer Mart. 2665 S. Dixie, (513)296-1248. 
OR: Beaverton: Byte Shop, 3482 SW Cedar 
Hills, (503)644-2686; Eugene: Real Oregon 
Computer Co., 205 W. 10th, (503)484-1040; 
Portland: Byte Shop, 2033 SW 4th Ave., (503) 
223-3496. Rl: Warwick: Computer Power, 
M24 Airport Mall, 1800 Post Rd., (401)738-4477. 
SC: Columbia: Byte Shop, 2018 Green, 
(803)771-7824. TN: Kingsport: Microproducts 
& Systems, 2307 E. Center, (615)245-8081. 
TX: Arlington: Computer Port. 926 N. Collins. 
(817)469-1502; Arlington: Microstore, 
312 W Randol Mill Rd., (817)461-6081; Houston: 
Interactive Computers, 7646/2 Dashwood, 
(713)772-5257; Lubbock: Neighborhood 
Computer Store, 4902-34th St., (806)797-1468; 
Richardson: Micro Store, 634 So. Central 
Expwy, (214)231-1096. VA: McLean: Computer 
Systems Store, 1984 Chain Bridge. (703) 
821-8333; Virginia Beach: Home Computer 
Center, 2927 Va. Beach Blvd., (804)340-1977. 
WA: Bellevue: Byte Shop, 14701 NE 20th, 
(206)746-0651; Seattle: Retail Computer Store, 
410 NE 72nd, (206)524-4101. Wl: Madison: 
Computer Store. 1863 Monroe, (608)255-5552; 
Milwaukee: ComputerStore, 6916 W. North, 
(414)259-9140. D.C.: Georgetown Computer 
Store, 3286 M St. NW, (202)362-2127. 
CANADA: Toronto, Ont: Computer Mart, 1543 
Bayview, (416) 484-9708; First Canadian 
Computer Store, 44 Eglinton Ave. W, (416) 
482-8080; Vancouver, B.C.: Basic Computer 
Group, 1438 W 8th, (604)736-7474; Pacific 
Computer Store. 4509 Rupert. (604)438-3282. 

Processor 




HIDDEN GOLD IN THE TI-59? 

In regard to "hidden gold" in the 
TI-59 (Webb Simmons' letter-interview, 
March 1978 BYTE, page 133) the only 
things I've come across after extensive 
investigation are the following: 

1. According to the manual, the 
"decrement and skip on zero" instruc- 
tion only references memories 00 to 09 
(ie; the instruction may only be fol- 
lowed by a single digit for the memory 
reference). In fact, any available memory 
can be used, except for 40, which hap- 
pens to be the numerical code for an 
indirect memory reference. You have to 
use the editing functions or some other 
trick to jam the 2 digit number in, but 
this isn't too much trouble; in the in- 
direct mode, memory 40 may also be 
used, and there's no jamming problem at 
all. 

2. This one is hardly hidden, but 
apparently (judging by the Tl programs 
that came with the calculator) Tl's 
designers didn't know about it: to make 
the display flash without altering any- 
thing else (including the contents of the 
display), the sequence "2nd operation 
99" does very nicely; actually, "2nd 
operation anything larger than 39." 

James G Owen 

951 Dryden Rd 

Ithaca NY 14850 

TEXT EDITING 

I sympathize and agree with your 
essay on the need for sophisticated text 
editing (March 1978 BYTE, page 6). 

I am a full-time writer who spends a 
great deal of time at my correcting 
Selectric II and who would appreciate 
technology which would eliminate cross- 
ing out and retyping my manuscripts as 
I unscramble the words that first poured 
out. 

At some point, I send these sheets to 
a typist, and they come back finished. 
That, too, could be eliminated by a text 
editor controlling a fancy typewriter. 

But I need even more the ability to 
write and edit on a video screen, then 
call for a final printout of the text on a 
hands off basis. 

I could buy a text editor, but I want 
further computer capability to keep 
track of my potential outlets to ease the 
process of writing query letters, to 
store and sort random ideas for later 
printout as fairly cohesive outlines, and 



to store many standard paragraphs for 
compilation into letters and replies to 
advertisements. 

Please keep me informed of your 
progress in your quest for quality editing 
at an affordable price. 

Robert A Moskowitz 

403 W School House Ln 

Philadelphia PA 19144 

A POINT OF INTEREST.. . 

While waiting for somebody to build 
a system cheap and intelligent enough 
for me I read your paper with great 
interest. Amusingly, BYTE is the only 
English magazine I have seen which turns 
the text on the side of the cover upside 
down. 

Mats Liljedahl 

Kalenderv 31 

415 11 SWEDEN 

And, you will notice, starting with 
the January 1978 BYTE, we did a 
180° flip of the binding edge notation. 
Consistency was viewed as a virtue 
within the context of one year's worth 
of BYTE after we discovered the orien- 
tation of the binding text in the January 
1977 issue! . . .CH 

DMA AND VIDEO: ARTICLES 
NEEDED 

How about running a review or an 
article on direct memory access (DMA) 
in microprocessors? We video hacks 
would like to read how to sort out 
manufacturers' specs, how to work 
around their design "lemons," and how 
to make multichannel DMA work 
effectively towards fancy pictures. 

Dr W R Levick 

Dept of Physiology 

John Curtin School of Medical Research 

POB 334 
Canberra City AUSTRALIA (ACT 2601 ) 

A MORE INEXPENSIVE DIRECT 
VIDEO CONVERSION? 

I read with interest the article by 
Dan Fylstra about converting a TV set 
into a monitor (May 1978 BYTE, page 
22). With all due respect to the author, 

Continued on page 120 



10 byte Augusr 1978 Circle 305 on inquiry card. 



Microcomputer 
System Solution. 

Announcing thelMSAI VDP40. 






• Fully integrated video data processor in a 
single cabinet. 

• Twin floppies, professional keyboard, 
S-100 expansion slots. 

• 24 line by 80 char. CRT, insert/ delete, 
programmable font, protected fields, 
inverse video. 

Handsome flip-top cabinet for easy access. 
Serial and parallel I/O ports included. 

» FORTRAN IV, Extended and Com- 
mercial BASIC. 

EVIDOS. r 

ISAM. r 33XrS 





.** 





You've decided you want a microcomputer 
DP center — but what to buy? A component 
system? A computer box here, a CRT box 
there, a keyboard box, a floppy disk box . . . 
A so called inexpensive $695 system? No 
disk; no way to add enough memory . . . and 
if you could, it's not inexpensive anymore; 
and you still wind up with a collection of 
boxes. 

The IMSAI VDP-40 is a fully integrated 
Video Data Processing system and comes 
equipped with your choice of 32K or 64K 
RAM on our own advanced RAM III board. 
In one cabinet, the VDP-40 combines a 
professional keyboard, heavy-duty power 

IMSAI Manufacturing Corporation, 
Dept. EWN, 14860 Wicks Boulevard 
San Leandro, CA 94577 
(41 5) 483-2093 TWX 91 0-366-7287 



supply, twin mini-flop- 
pies, a multi-slotted mother- 
boards-inch CRT, plus RAM at a 
new price/performance never before 
achieved. 

System Expansion? Extra slots in our 
S-100 bus motherboard and our new power 
supply allow almost unlimited expansion. 
Need more disk expansion? A controller 
option of the VDP-40 allows expansion to 
greater than 4.5M Bytes. 
Add a line printer, an IBM compatible tape 
drive, a modem: all are available, with the 
interfaces and software to make it work for 
you. 

IMSAI EUROPE 

Europa Terrassen 

8 Rue Jean Engling 

Dommeldange, Luxembourg 

43-67-46 Telex: 1428 



^^^^^ IMSAI's VDP-40 

price/performance means every 
home or business can now afford a 
complete DP center. Check us out. IMSAI 
has what you want and what you need. Visit 
your dealer or write us directly. 
Features subject to change without notice. 



® 



MJ 



The Standard of Excellence 
In Microcomputer Systems 



Price/Performance no one else has put together. 



Circle 1 75 on inquiry card. 



BYTE August 1978 11 



Technical 
Fwum 



A Letter Exchange: Extending S-100 Bus? 



Olav Naess 
Welhavensgt 65 
Bergen NORWAY 



When John McCallum in the March 1978 
BYTE (page 148) discussed the possibilities 
of getting a 16 bit data bus on the S-100, 
there was one alternative he didn't mention: 
why not use the input and output 8 bit 
buses as a single 16 bit bidirectional bus? As 
far as I can see, the problem will be cards 
which enable their output buffers when the 
processor does the same. Are there really 
cards which do that? Do they talk when 
they are told to listen? 

That a 16 bit processor can only ex- 
change a byte at a time with old IO cards 
is less important. Old memory cards will be 
more tricky to use, as they will require some 
buffer rewiring. If the new 16 bit processors 
get 16 bit wide memory cards, they should 
thrive well on the S-100. 

I suggest an improvement for the S-100: 
one of its lines should be reserved for use as 
a bidirectional bus for analog signals. When- 
ever digital data is read through an input 
port, an analog to digital converter samples 
the analog bus, and when data is sent to an 



output port, a D/A converter puts its output 
voltage on the analog bus. 

Finally, it is awkward to connect S-100 
cards to the environment when they need 
external connectors, switches, indicators, 
potentiometers, etc. The cabinet cannot 
easily have panels equipped with such 
communication points which the particular 
combination of cards inside needs. A solu- 
tion to this problem is commonly used with 
laboratory electronic systems: Each plug-in 
card has a long, narrow plate mounted per- 
pendicularly along the card edge that is 
opposite to the edge connector. Together 
these plates for the communication points 
will constitute a relevantly composed front 
panel; and the mess of costly connectors 
and cables inside is replaced by short, fixed 
wire connections. Old S-100 cards can be 
used with such a system, even if the plates 
cannot be mounted on these cards. (A still 
better but more radical solution is the 
hinged frame system I described in the 
April 1977 Digital Design.)' 



And Some Notes by John C McCallum 



John C McCallum 
Dept of Computer Science 
York University 
4700 Keale St 
Downsview, Ontario 
CANADA M3J 1P3 



I was interested in Olav Naess' comments 
about expanding the Altair (S-100) bus to 
include a 16 bit data bus. Mr Naess' notes 
brought to mind some of the discussions at 
the S-100 bus forum at Atlantic City last 
year. 

The suggestion to use the input and 
output 8 bit buses as a single 16 bit bi- 
directional bus has three drawbacks: 

(1) It assumes that proper data transfer 
signals are used by all memory 
boards. Unfortunately that's not so. 
I don't have any of the bad boards 
myself. But others at the forum 
mentioned the problem. 

(2) A big problem is Processor Tech- 
nology's idea that one should wire 
data in and data out lines as a bi- 
directional bus. This simplifies board 
design — but makes a 16 bit bidirec- 
tional bus impossible when used with 
most Processor Technology boards 
or systems. 

(3) Rewiring all the old memory boards 
to accommodate 16 bit words is a 
problem. I have enough difficulty 
getting standard boards in the right 
memory area! 



About the comment on reserving one 
S-100 bus line for an analog signal — it 
sounds nice. But unfortunately there is so 
much noise on the bus that it would be 
useless. Most of the people at the forum did 
not realize the extent of the noise on the 
bus — so it is useful to point it out again. 

On the topic of packaging of the S-100 
system, I feel there is something needed. 
Perhaps a device like a CAMAC frame 
system would be good. This is similar to 
what Mr Naess suggests. I think the hinged 
frame might be tricky, and I can remember 
100 white wires to connect up sections of a 
mother board! I think the most important 
S-100 bus consideration is getting common 
acceptance of the extended addressing lines. 
With 64 K memory boards coming down in 
price, and the new Intel 8086 processor 
addressing 1 M byte, the lines are needed. 
TDL seemed to have the simplest structure, 
so I vote for A1 6, 17, 18, 19 as the highest 
priority. 

Beyond the 1 M byte range, I think that 
we most likely need a whole new bus to sup- 
port future processor chips (multi-mega- 
byte, 32 bit data bus). The S-100 bus will 
probably be going strong for another 5 years 
anyway." 



12 August 1978 ©BYTE Publications Inc 



Our goal was to produce 100% 
reliable business programs/' 




" g ^ e " e ^Cg MANUAL 




e<» 



<£>* 



ffKCOUIITS RCCClVflBU 

HfFtntNCB MANOAt 



^ 




*£»* 



■ 



"What do we mean by reliable programs? Three 
things: good program design, documentation, and 
full support. 

DESIGN Good program design meets a wide 
variety of customer needs without reprogramming. 



<+?* 




vJ 





^^^^^^i 


T-+ ~1 




*?? **** ■■ 


k 


UiA 


« 


W . •^^^^^ 





hnm rarscins. President 

Alan Cooper. \'P. Systems Development 



351 on irun>"\ ewd 



Our programs are comprehensive yet retain their 
flexibility. They allow convenient backup, are easy 
to use and have been thoroughly tested and field 
proven. 

DOCUMENTATION We consider the quality of 
the documentation to be as important as the 
programs themselves. That's why our manuals 
are clear, concise and complete. 

SUPPORT And when it comes to support we're 
second to none. We release periodic updates, 
answer your questions and are available to provide 
technical assistance. Now that's reliable." 

Our qrowing Business Svstems series currently 
includes: GENERAL LEDGER, ACCOUNTS 
RECEIVABLE, NAD (Name and Address File 
system) . QSORT (full disk sort merge) . and 
CBASIC (a powerful business Basic) . For details, 
contact our sales manager. Richard Ellman. 

Structured I y/tems Group 

5615 KALES AVE, DEPT. B6 OAKLAND, CA 94618 (415)547-1567 
•v svstems are compatible with am .' 80 cm 8080 CP M system 



Why Apple II is the world's 
st selling personal computer. 




'hich personal computer will be 
most enjoyable and rewarding for you? 
Since we delivered our first Apple* II 
in April, 1977, more people have chosen 
our computer than all other personal 
computers combined. Here are the 
reasons Apple has become such an 
overwhelming favorite. 

Apple is a fully tested and assembled 
mainframe computer. You won't need 
to spend weeks and months in assembly. 
Just take an Apple home, plug it in, 
hook up your color TV* and any cassette 
tape deck — and the fun begins. 

To ensure that the fun never stops, 
and to keep Apple working hard, we've 
spent the last year expanding the Apple 
system. There are new peripherals, 
new software, and the Apple II Basic 
Programming Manual. And wait till 
you see the Apple magazine to keep 

14 BYTE August 1978 



owners on top of what's new. 

Apple is so powerful and easy to use 
that you'll find dozens of applications. 
There are Apples in major universities, 
helping teach computer skills. There 
are Apples in the office, where they're 
being programmed to control inven- 
tories, chart stocks and balance the 
books. And there are Apples at home, 
where they can help manage the family 
budget, control your home's environ- 
ment, teach arithmetic and foreign 
languages and, of course, enable you 
to create hundreds of sound and 
action video games. 

When you buy an Apple II you're 
investing in the leading edge of tech- 
nology. Apple was the first computer 
to come with BASIC in ROM, for 
example. And the first computer with 
up to 48K bytes RAM on one board, 
using advanced, high density 16K 
devices. We're working to keep Apple 
the most up-to-date personal computer 
money can buy. Apple II delivers the 
features you need to enjoy the real 



satisfaction a personal computer can 
bring, today and in the future. 

15 colors & hi-resolution 
graphics, too. 

Don't settle for a black and 
white display! Connect your 
Apple to a color TV and 
BASIC gives you instant 
command of three display 
modes: Text, 40h x 48v 
Color-graphics in 15 colors, 
a 280h x 192v High 
Resolution 
array that 
lets you plot 
graphs and 
compose 
3-D images. 
Apple gives 
you the added 
capability of combining 
text and graphics, too. 

Back to basics, and 
assembly language too. 

Apple speaks three languages: fast 
integer BASIC, floating point BASIC 
for scientific and financial applications, 
and 6502 assembly language. That's 
maximum programming flexibility. And, 
to preserve user's space, both integer 
BASIC and monitor are permanently 
stored in 8K bytes of ROM, so you 
have an easy-to-use, universal language 
instantly available. BASIC gives you 
graphic commands: COLOR=, VLIN, 
HLIN, PLOT and SCRN. And direct 
memory access, with PEEK, POKE 
and CALL commands. 

Software: Ours and yours. 

There's a growing selection of pre- 
programmed software from the Apple 
Software Bank — Basic 
Finance, Checkbook, High 
Resolution Graphics and 
more. Now there's a User 
Section in our bank, to make 
it easy for you to obtain 
programs developed 





by other Apple owners. Our Software 
Bank is your link to Apple owners all 
over the world. 

Alive with 
the sound 
of music. 

Apple's ex- 
clusive built-in 
speaker delivers 
the added dimension of sound to your 
programs. Sound to compose electronic 
music. Sound to liven up games and 
educational programs. Sound, so that 
any program can "talk" back to you. 
That's an example of Apple's "people 
compatible" design. Another is its light, 
durable injection- molded case, so you 
can take Apple with you. And the 
professional quality, typewriter-style 
keyboard has n-key rollover, for fast, 
error-free operator interaction. 

Apple is the 

pf oven computer. 

Apple is a state-of-the-art single 
board computer, with advanced LSI 
design to keep component count to a 
minimum. That makes it more reliable. 
If glitches do occur, the fully socketed 
board and built-in diagnostics sim- 
plify troubleshooting. In fact, on our 
assembly line, we use Apples to 
test new Apples. 

* Apple II plugs into any standard TV using 
an inexpensive modulator (not included). 

*In California, call 408/996-1010. 



Apple peripherals 
are smart peripherals. 

Watch the far right column of this ad 
each month for the latest in our grow- 
ing family of peripherals. We call them 
"intelligent interfaces." They're smart 
peripherals, so you can plug them in 
and run them from BASIC without 
having to develop custom software. 
No other personal computer comes 
close to Apple's expandability. In addi- 
tion to the built-in video interface, cas- 
sette I/O, and four A/D inputs with two 
continuously variable game paddles, 
Apple has eight peripheral slots, three 
TTL inputs and fourTTL outputs. Plus 
a powerful, state-of-the-art switching 
power supply that can drive all your 
Apple peripherals. 

Available now 

Apple is in stock and ready for 
delivery at a store near you. Call us for 
the dealer nearest you. Or, for more 
details and a copy of our "Consumer's 
Guide to Personal Computers," call 

800/538-9696** 
or write Apple 
Computer, Inc., 
10260 Bandley 
n^ Drive, Cuper- 
\ > tino, CA 
95014. 




iry card. 



■gcippkz computer 



Programming is a snap! 
I'm halfway through Apple's BASIC 
manual and already I've programmed 
my own space wars game. 



Those math programs I wrote 
last week- 1 just rewrote them using 
Apple's mini-assembler and got them 

to run a hundred times faster. 



New from Apple. 

Introducing Disk II : 
instant access to your files. 

Our newest peripheral is Disk II, a 
high-density 514" floppy disk drive for 
fast, lowcost data retrieval. It's perfect 
for storing large bodies of data such as 
household finances, address files and in- 
ventories; you can find any record in just 
half a second. No more searching through 
stacks of cassettes; with 
a few keystrokes, your 
system will load, store 
and run any file by 
name. 

Disk II consists of 




interface cards and fourteen drives, 
for control of nearly 1.6 megabytes of 
data, with no expansion chassis. The com- 
bination of ROM-based bootstrap loader 
and an operating system in RAM provides 
complete disk handling capability, includ- 
ing these special features: 

• Soft sectored • Random or sequential 
file access • Program chaining capability 

• Universal DOS command processor 
works with existing languages and monitor 

• Full disk capability in systems with as 
little as 16K RAM • Storage capacity: 
113 kilobytes/diskette. 

See Disk II now at your Apple dealer. 
Sold complete with controller and DOS at 
$495.* 

Peripherals in stock 

Hobby Board (A2B0001X), Parallel Printer 
Interface (A2B0002X), Communication In- 
terface (A2B0003X), Disk II (A2M0004X). 

Coming soon 

High speed Serial Interface, Printer II, 
Printer HA, Monitor II, Modem IIA. 

1 Price subject to change without notice. 

Circle 15 on inquiry card. 

Apple's smart peripherals make 

expansion easy. Just plug 'em in and 

they're ready to run. I've already 

added two disks, a printer and the 

communications card. 












About the Cover 



by Carl Helmers It is rare when one can indulge in one's 

prejudices with relative impunity, poking 
a bit of good humored fun to make a point. 
The design of the cover, entitled "Pascal's 
Triangle" provided just such an opportunity. 
The cover was executed by Robert Tinney, 
but the prejudices are all mine and were 
given to him as a fairly detailed script. The 
point is that Pascal is here, it is consistent 
with use by small computers, such as many 
readers own, and it is available in the form 
of the UCSD software system at quite a 
nominal charge above the cost of the hard- 



ware required. While today it requires a com- 
puter at the high end of the personal com- 
puter range of pricing, the utility of the 
language and advances in both magnetic 
media and read only memory technology 
should lower the price of the minimum 
hardware requirements considerably over 
the course of the next year or two. With that 
point, we present "Pascal's Triangle." 

The primary allegory of the cover is of 
course the inversion of the "Bermuda 
Triangle" myth's theme to show smooth 
waters. The triangle is an unbounded tri- 



16 August 197SOBYTE Publications Inc 



Now there are at least 

102K more reasons to 

buy the HeathkitHS 

Personal Computer- 

The WH17 Floppy! 




1 

• 

Be sure to fill out 

postcard to order 

your FREE catalog. 

If card is missing, 

write Heath Company, 

Dept. 334-440, 

Benton Harbor, 

Michigan 49022. 



Heathkit 




CP-152 
Circle 160 on inquiry card. 



ou read this magazine, you've 
probably seen our ads on the H8. It's a 
neat, well -designed machine with a 
lot of fine features including an intelli- 
gent front panel, octal keyboard entry 
and display, plenty of room for memory 
and I/O expansion, and lots of other 
practical "goodies," including the 
popular 8080A CPU. H8 owners have 
praised it for its convenience, versatility, 
ease of operating and general per- 
formance characteristics. In fact, if the 
H8 was "missing" anything, it was a 
floppy disk storage system. 
Well, not any more! The WH17 Floppy 
is now a reality and it brings extraordi- 
nary powe r andversatility to your H8 

computer 
system. 
Programs 
are loaded 
in seconds 
instead 
of minutes 
so you're 
up and 

running fast; you can store literally 
hundreds of programs on a single disk 
so you have lots of storage space and 
immediate access to all your programs; 
you can update files instantly and 
efficiently to save time. The WH17is far 
more versatile and reliable than 
paper tape or cassette storage systems. 
It truly makes the H8 a "total capability" 
computer system! 




WANGCO 82 
Disk Drive Unit 



Storage media for the WH17is the stan- 
dard hard -sectored 40 -track diskette. 
Measuring just 5.25" in diameter, each 
disk offers access to better than 102K 
bytes of available program and 
data storage area. The drive system 
used in the WH17 is the famous 
WANGCO model 82, a performance- 
proven drive providing accurate high- 
speed data access. Specifications of 
this drive include a conservative 30 mS 
track-seek time and typical random 
sector access times of less than 250 
mS. Compare. These figures are con- 
siderably better than you'll find for 
most equivalent competitive drives. 

A diskette containing all operating 
systems software for the WH17 is sold 
separately for $100. This software 
includes the Heath Disk Operating 
System (HDOS) with its unique diag- 
nostic for floppy evaluation and 
optimization; the BUG-8 console 
debugger; TED-8 text editor; HASL-8 
assembly language and extended 
Benton Harbor BASIC with files. An 
optional plug-in second drive is 
also available for $295. 
The WH17 Floppy Disk system is now 
available fully assembled and tested. 
With single drive and controller 
for only $675. A kit version will be 
available later. The H8 requires 16K 
of RAM to use the WH17and its operat- 
ing system to their fullest capabilities. 

era mail-order net FOB, Benton Harbor. Michigan 
Prices and specifications subject tochange without n 







ERS 



System Engineered 
for Personal Computing 

WH17 




BYTE August 1978 



angular array of buoys numbered with the 
binomial expansion coefficients. These co- 
efficients are "Pascal's Triangle" as any high 
school algebra student will have learned. 
Pascal's Triangle on the cover is of course 
embedded in a matrix of the waters of the 
FORTRAN Ocean of computer languages, 
named after the pioneering widely used 
high level language FORTRAN, and its 
descendents FORTRAN II, FORTRAN IV, 
WATFOR, WATFIV and even the mildly 
reformed RATFOR. 

A prominent island graces the bottom of 
the picture, the Isle of BAL with its rocky 
and desolate surface. Note the great JCL 
barrier reef which surrounds the Isle of Bal 
and borders the Straights of COBOL along 
the bottom edge of the picture. These 
dangerous and unstructured reefs have sunk 
more than one ship on their treacherous 
shoals, including the good ship SS OS of all 
encompassing (360 degree) fame. (Much 
commercial traffic is seen in the sea lanes of 
the Straights of COBOL) 

In the lower right part of the picture 
where the Straights of COBOL meet the 
main body of the FORTRAN Ocean, we see 
a curious fog bank (imagining a view from 
the deck of a ship in the waters). It is said 
that this fog bank is always present, hiding 
the exotic and mysterious jungles of LISP. 
While unseen by normal mortals, our gods' 
eye view of the picture shows the brilliant 
tropical algorithms, the fabulous nodes 
growing on trees like in some Eldorado 
of programming. But who can see brilliance 
through a fog bank? 

Travelling upward (in the picture) 
through heavy seas we come to the pinnacle, 
a snow white island rising like an ivory tower 
out of the surrounding shark infested waters. 
Here we find the fantastic kingdom of small 
talk, where great and magical things happen. 
But alas, just as the impenetrable fog bank 
around the jungles of LISP hide it from our 
view, the craggy aloofness of the kingdom 
of small talk keeps it out of the mainstream 
of things. 

Turning our attention to the lower left 
part of the picture, we see the famous 
Floating Point separating the FORTRAN 
Ocean mainstream from the interactive 
and weed filled Sea of BASIC. 

To all the relative disorder and chaos of 
the waters of the FORTRAN Ocean and 
its adjacent coastal features, the smooth, 
calm infinity of Pascal's Triangle provides a 
brilliant contrast. We note vessels ranging 
from the commercial freighters to pleasure 
boats to the rafts of hobbyists to the 
military fighting ships heading for the calm 
waters of Pascal 's Triangle. 

To complete the mythology, we find 
within Pascal's Triangle numerous examples 



of ships enjoying the smooth sailing and 
untroubled waters. 

Is this an adequate picture? Computer 
languages are like philosophies in many re- 
spects, which is to say that the reasons for 
an enthusiasm are often hard to attribute to 
anything other than aesthetic grounds. 
But as in philosophies and religions, con- 
versions do occur from time to time. 
Very often in today's microcomputer world, 
we find the case of the engineer or systems 
programmer who has been using an as- 
sembler (if anything at all) as the first and 
only software development tool. Such a 
person will often discover BASIC, FOR- 
TRAN, APL, COBOL (yes, even people 
with engineering backgrounds sometimes 
see COBOL as a first high level language) 
or language X. When language X is dis- 
covered, the advantages of the high level 
language technique often become confused 
with the specific example— and the enthu- 
siasm which comes with the powerful elixir 
of automated programming aids turns that 
person into an X language convert with an 
almost religious fervor. 

As the new convert proceeds to use the 
language, he or she also discovers its in- 
adequacies in detail errors. And the X lan- 
guage devotee starts inventing this or that 
perfect extension, a new superset of X, 
which is endowed with even better pro- 
perties. This particular inventiveness syn- 
drome is most pronounced in compiler 
implementors since they are in a position 
to "do something about" the older language 
by ad hoc implementing personally meaning- 
ful extensions when putting a new compiler 
up. 

What has resulted, viewing from the big 
picture, is a range of languages, each reflect- 
ing the context of the group of imple- 
mentors who are responsible for its creation. 
Pascal in this global context must be viewed 
as but another step in that natural sequence 
of human events. 

I personally like Pascal as a method of 
expressing programs, because of a number 
of arguments supported by my own prior 
experience using languages including macro- 
assemblers, BASIC, FORTRAN, PL/I, 
HAL/S, JOVIAL, XPL and a bit of PL/M. 

As a potential user, try a few programs, 
see if you like the style of expression in- 
volved, and if the price is right, that may be 
the system for you. If you like the argu- 
ments presented for Pascal in this issue and 
by examples in issues to come, by all means 
express your interest to manufacturers. This 
issue is a conscious attempt to communicate 
some of the flavor of Pascal with a spirit of 
fun and an understanding that even Pascal 
may not be the be all and end all of com- 
puter languages." 



18 



August 1978 ©BYTE Publications Inc 



Circle 7 on inquiry card. 







ALTOS presents a new standard 
in quality and reliability 













■ 



dUfl ■ 



WE'RE ALTOS COMPUTER SYSTEMS. Our SUN-SERIES ACS8000 business/scientific 
computer creates a new standard in quality and reliability in high technology computers. 



HIGH TECHNOLOGY The ACS8000 is a single board, 
Z80®* disk-based computer. It utilizes the ultra-reliable 
Shugart family of 8 inch, IBM compatible, disk drives. A 
choice of drives is available: single or double density, single or 
double sided. Select the disk capacity you need, when you 
need it: ISM, 1M, 2M, or 4M bytes. The ACS8000 features 
the ultimate in high technology hardware: a fast 4 MHz Z80 
CPU, 64 kilobytes of 16K dynamic RAM, 1 kilobyte of 2708 
EPROM, an AMD 9511 floating point processor, a Western 
Digital floppy disk controller, a Z80 direct memory access, 
Z80 Parallel and Serial I/O (two serial RS232 ports, 1 parallel 
port), and a Z80 CTC Programmable Counter/Timer (real time 
clock). In essence, the best in integrated circuit technology. 




COMPUTER SYSTEMS 



BUILT-IN RELIABILITY The ACS8000 is a true single 
board computer. This makes it inherently reliable and main- 
tainable. The board and the two Shugart drives are easily ac- 
cessible and can be removed in less than five minutes. All elec- 
tronics are socketed for quick replacement. Altos provides 
complete diagnostic utility software for drives and memory. 

QUALITY SOFTWARE Unlimited versatility. The ACS 
8000 supports the widely accepted CP/M®** disk operating 
system and FOUR high level languages: BASIC, COBOL, 
PASCAL and FORTRAN IV. All available NOW. 

PRICE $3,840. Standard ACS8000 system with 32 Kb RAM 
and Vi Mb disk. FPP, DMA and software optional. Dealer/OEM 
discounts available. Delivery: 3 weeks ARO. 

•280 is a trademark of Zilog. Inc. 

**CP/M is a trademark of Digital Research, inc. 



2378B WALSH AVENUE • SANTA CLARA • CA 95050 • (408) 244-5766 



There's an Ohio Scientific 
dealer near you. 



ALABAMA 

M.C.S. Corp. 
Pelham Mall 
Pelham, AL 35124 
(205)663-1287 

ALASKA 

Scientific Business Instr's 
500 W. 27th 

Anchorage, AK 99503 
(907) 277-2650 

CALIFORNIA 

Expansion Techniques 
2534 Ganesha 
Altadena, CA 91001 
(213) 794-0476 

Shuey Aircraft 
1009 E. Vermont 
Anaheim, CA 92805 
(714) 991-3940 

Olson Electronics 
11332 East South 
Cerritos, CA 90701 
(213) 860-0060 

Adventures in Computing 
8756 Warner 

Fountain Valley, CA 92706 
(714) 848-8388 

Olson Electronics 
4642 West Century 
Inglewood, CA 90304 
(213) 674-5740 

Olson Electronics 
Kearny Mesa, 4840 Convoy 
San Diego, CA 92111 
(714)292-1100 

Systems Engineering 

900 3rd Street 

San Francisco, CA 94107 

(415)777-3150 

Olson Electronics 
2125 El Camino Real 
Santa Clara, CA 95051 
(408) 248-4886 

COLORADO 

Total Data Systems 
125 Fairway Lane 
Fort Collins, CO 80521 
(303) 491-5692 

Tricomp/Computer Country 
7115 N. Federal 
Westminster, CO 80030 
(303) 426-7743 



Delaware Microsystems 
92 East Main »1 
Newark, DE 19711 
(302) 738-3700 (after 7 PM) 



Olson Electronics 
5833 Ponce de Leon 
Coral Gables, FL 33146 
(305) 666-3327 

Olson Electronics 
1644 N. E. Second 
Miami, FL 33132 
(305)374-4121 

Calculator Place 
12 South Orange 
Sarasota, FL 33577 
(813)366-7449 

Olson Electronics 
6901 22nd Avenue, N. 
Tyrone Square Mall 
St. Petersburg, FL 33710 
(813)345-9119 

Olson Electronics 
1215 South Dale Mabry 
Tampa, FL 33609 
(813)253-3129 

GEORGIA 

Electronic Information 
120 Heatherwood 
Athens, GA 30601 
(404) 353-2858 

Secom Systems 
5241-F New Peach Tree 
Chamblee, GA 30341 
(404) 455-0672 



Olson Electronics 
2571 N. Decatur 
Decatur, GA 30033 
(404) 378-4201 

HAWAII 

Small Computer Systems 
3140 Wailalae 
Honolulu, HI 96816 
(808) 732-5246 

ILLINOIS 

American Microprocessors 
1100 E. Broadway 
Alton, IL 62002 
(618)465-4489 

Tech-Tronics 
714 S. University 
Carbondale, IL 62901 
(618)549-8495 

Adonis Computing 
2855 W.Nelson 
Chicago, IL 60618 
(312)463-0847 

Electronic Systems 
611 N.Wells 
Chicago, IL 60610 
(312)944-6565 

Olson Electronics 
4101 N. Milwaukee 
Chicago, IL 60641 
(312)545-7336 

Olson Electronics 

1734 0gden 

Downers Grove, IL 60515 

(312)852-9650 

A & H Associates, Ltd. 
2530 Crawford 
Evanston, IL 60602 
(312) 328-2800 

No-Name 
2701 Grand 
Galesburg, IL 61401 
(309)343-6135 

CompuTerminal Systems, Inc. 
1132 Waukegan 
Glenview, IL 60025 
(312) 724-3690 

Tek-Aids Industries 
1711 Chestnut 
Glenview, IL 60025 
(312) 724-2620 

American Microprocessors 
6934 N. University 
Peoria, IL 61614 
(309) 692-5852 

American Microprocessors 
20 N. Milwaukee 
Prairieview, IL 60069 
(312)634-0076 

Wysocki Electric 
3080 South Blvd. 
Rockford, IL 61109 
(815)874-4846 

Data Domain 
1612 E. Algonquin 
Schaumburg, IL 60195 
(312)397-8700 

Data Domain 
406 S. College 
Bloomington, IN 46401 
(812) 334-3607 

American Microprocessors 
146 N. Broad 
Griffith, IN 46319 
(219) 924-7901 

American Microprocessors 
3602 East Washington 
Indianapolis, IN 46201 
(317)359-7445 

Data Domain 
7027 N. Michigan 
Indianapolis, IN 46266 
(317)251-3139 

Olson Electronics 
5353 N. Keystone 
Indianapolis, IN 46220 
(317)253-1584 



Data Domain 
10 N. Third 

LaFayette, IN 47902 
(317)423-254B 

Computer Management 
610 Monroe 
LaPorte, IN 46350 
(219) 362-5812 

American Microprocessors 
2655 Irving 
Portage, IN 46368 
(219) 760-2278 



Microbus 

1910 Mt. Vernon, S. E. 

Cedar Rapids, IA 52403 

(319)364-5075 

American Microprocessors 
102 E. 4th 

Waterloo, IA 50703 
(319)296-2255 



Barney & Associates 
425 N. Broadway 
Pittsburg, KS 66762 
(316)231-1970 

Technigraphics 
5911 Claredon 
Wichita, KS 67220 
(316) 744-2443 

KENTUCKY 

Olson Electronics 
117 Southland 
Lexington, KY 40503 
(606)278-9413 

Data Domain 
3028 Hunsinger 
Louisville, KY 40220 
(502) 456-5242 

Olson Electronics 
4137Shelbyville 
Louisville, KY 40207 
(502) 893-2562 



The Mathbox 

4431 Lehigh 

College Park, MD 20740 

(301)277-6828 

Systems Engineering 
1749 Rockville Pike #307 
Rockville. MD 20842 
(301)468-1822 

MASSACHUSETTS 

Computer Shop-Aircom 
288 Norfolk 

Cambridge, MA 02139 
(617)661-2670 

Bradshaw Enterprises 
18 Harborview 
Hingham, MA 02043 
(617)749-6844 

MICHIGAN 

The Abacus 

Route 1, Box 193 

Niles Road 

Berrien Springs, Ml 49103 

(616) 429-3034 

Microcomputer World 
313 Michigan N. E. 
Grand Rapids, Ml 49503 
(616)451-8972 

Concept Engineering 
3706 Malibu 
Lansing, Ml 48910 
(517)394-0585 

Olson Electronics 

29121 DeQuindre 

Madison Heights. Ml 48071 

(313)546-0190 

Great Lakes Photo 
5001 Eastman 
Midland, Ml 48640 
(517)631-5461 

MINNESOTA 

Custom Computer Systems 
1823 Lowry 

Minneapolis, MN 55411 
(612)588-3944 



Micro Business Sales 
4345 Lyndale N. 
Minneapolis, MN 55412 
(612)871-9230 

Ronald D. Frisch 
3034 Marine Circle 
Stillwater, MN 55082 
(612)439-8212 

MISSISSIPPI 

Jack Fisher Sales 

100 Main 

Michigan City, MS 38647 

(601)224-6470 

MISSOURI 

Four State Microcomputer 
402 Wall 

Joplin, MO 64801 
(417) 782-1285 

Norman Electronics 

402 Wall 

Joplin, MO 64801 

(417)724-0368 

Impact Systems 

Decker Building 

613 W. 3rd 

P.O. Box 478 

Lee's Summit, MO 66463 

(816) 524-5919 

The Computer Bit 
1320 S. Glenstone 
Springfield, MO 65804 
(417)883-2709 

Futureworld 
1909 Seven Pines 
St. Louis, MO 63141 
(314)434-1121 

Sauer Computer Systems 

1750 South Brentwood 

Suite 601 

St. Louis, MO 63144 

(314)962-0382 

MONTANA 

Linco 

P.O. Box 2418 

Cut Bank, MT 59427 

(406)336-3117 

NEBRASKA 

Omaha Computer Store 
4540 South 84th 
Omaha, NB 68127 
(402) 592-3590 

NEW JERSEY 
Computer Power 
235 Nutley 
Nutley, NJ 07110 
(201)667-5502 

Computer Corner 
240 Wanaque 
Pompton, NJ 07442 
(201)835-7080 

NEW YORK 

Associated Consultants 
33 Ogden 

East Williston, NY 11596 
(516) 746-1079 

Computer Mart of N. Y. 

118 Madison 

New York, NY 10016 

(212)686-7923 

Yingco 

Two World Trade Center 
Penthouse 107th Floor 
New York, NY 10048 
(212) 775-9000 

Brag Microcomputers 
19 Cambridge 
Rochester, NY 14607 
(716)442-5861 

Microcomputer Workshop 
234 Tennyson Terrace 
Williamsville, NY 14221 
(716) 632-8270 

OHIO 

Olson Electronics 
69 West State 

Akron, OH 44308 
(216) 762-0301 



Olson Electronics 
1994 Brittain 
Akron. OH 44310 
(216)633-4338 

Olson Electronics 
3265 W. Market 
Akron. OH 44313 
(216)864-3407 

Lucas Office Equipment 

& Service 
869 E. Franklin 
Centerville, OH 45459 
(513) 433-8484 

Olson Electronics 
2020 Euclid 
Cleveland, OH 44115 
(216)621-6387 

Olson Electronics 
6813 Pearl 

Cleveland, OH 44130 
(216)845-2424 

Olson Electronics 
6153Mayfield 
Cleveland, OH 44124 
(216)449-2690 

Olson Electronics 
21850 Center Ridge 
Cleveland, OH 44116 
(216) 331-4600 

Byte Shop 
2432 Chester 
Columbus, OH 43221 
(614)486-7761 

Olson Electronics 
1975 Henderson 
Columbus. OH 43220 
(614)451-3245 

Johnson Computer 
123 W.Washington 
Medina, OH 44256 
(216) 725-4560 

Olson Electronics 
7401 Market 
Southern Park Mall 
Youngslown, OH 44512 
(216)758-3828 

OKLAHOMA 

Gauger Engineering 
910 Orient 
Clinton, OK 73601 

Accounting Systems 
2709 Orlando 

Oklahoma City, OK 73120 
(405) 751-1537 

Gauger Engineering 
3824 S. 79th East 
Tulsa, OK 74145 
(918)627-1064 

OREGON 

Fial Computer 
11013 S. E. 52nd 
Milwaukie. OR 97222 
(503) 654-9574 

PENNSYLVANIA 

Olson Electronics 
5918 Penn 

Pittsburgh, PA 15206 
(412)362-1333 

Olson Electronics 
3405 Saw Mill Run 
Pittsburgh, PA 15227 
(412) 881 0702 

Olson Electronics 
4778 McKnight 
Pittsburgh, PA 15237 
(412)366-7298 

Abacus Data Systems 

Route 8 

Reno, PA 16343 

(814)677-6502 

TENNESSEE 

Computer Powerof Memphis 
3065 James 
Memphis, TN 38128 
(901)386-9905 

Smart Machine Mart 
5151 Hillson 
Nashville, TN 37211 
(615)833-9773 



Computer Powerof Oak Ridge 
800 Oak Ridge Turnpike 
Oak Ridge, TN 38730 
(615)482-9031 

SOUTH DAKOTA 

Exe Engineering 
804 E. Lewis 
Vermillion, SD 57069 
(605)624-6411 

TEXAS 

Mr. Computer 

744 FM 1960 W. Suite E 

Houston, TX 77090 

(713)444-7419 

UTAH 

Home Computer Store 
2343 East 3300 South 
Salt Lake City. UT 84109 
(801) 484-6502 

VIRGINIA 

H/B Computers 
217 E. Main 

Charlottesville. VA 22101 
(804)295-1975 

Microsystems, Inc. 
5320 Williamson 
Roanoke. VA 24012 
(703) 563-0693 

WASHINGTON 

Ye Olde Computer Shoppe 
1301 George Washington 
Richland, WA 99352 
(509) 946-3330 

WISCONSIN 

MicroComp 

785 S. Main 

Fond du Lac, Wl 54935 

(414)922-2515 

Madison Computer Store 
1863 Monroe 
Madison, Wl 53711 
(608) 255-5552 

Milwaukee Magnetic Media 
1750 West Silver Spring 
Milwaukee, Wl 53209 
(414)228-8930 

Indianhead Computer 
Box 178 Route 4 
Rice Lake, Wl 54868 
(715)234-4323 

Olson Electronics 
3125 South 108th 
West Allis. Wl 53227 
(414)541-1406 

WYOMING 

Control Technology 
204 Crazy Horse Lane 
Gillette, WY 82716 
(307) 682-0300 

CANADA 

Omega Computing Ltd. 
Box 220 
Station P 
Toronto. Ontario 
Canada M5S2F7 
(416) 425-9200 

Robo-Tronics 
509 16th N. W. 
Calgary, Alberta 
Canada T2M 0J6 
(403) 282-9468 

EUROPE 

Pan Atlantic Computer 

System GmbH 
61 Armstadt 
Frankfurterstrasse 78 
West Germany 

PUERTO RICO 

Puerto Rico Key Punch 
P.O. Box 2036 

HatoRey, Puerto Rico 00919 
(809) 751-4042 

SOUTH AMERICA 

SAVE 
P.O. Box 701 
Cuenca, Ecuador 
830-770 



20 



BYTE August 1978 



Circle 290 on inquiry card. 



An exceptional value 
in personal computing 



Sh. 




i mmiiiM. , iib J 



CHALLENGER ■■ 



If you are interested in an ultra high per- 
formance personal computer which can be 
fully expanded to a mainframe class micro- 
computer system, consider the C2-8P. 

Features: 

I Minimally equipped with 8K BASIC-in-ROM, 4K RAM, 
machine code monitor, video display interface, cassette 
interface and keyboard with upper and lower case 
characters. (Video monitor and cassette recorder optional 
extras.) 

a The fastest full feature BASIC in the microcomputer 
industry. 

■ Boasts the most sophisticated video display in per- 
sonal computing with 32 rows by 64 columns of upper 
case, lower case, graphics and gaming elements for an ef- 
fective screen resolution of 256 by 512 elements. 

a The CPU's direct screen access, coupled with its ultra 
fast BASIC and high resolution, makes the C2-8P capable 
of spectacular video animation directly in BASIC. 

■ Fully assembled and tested: 8 slot mainframe class 
microcomputer, six open slots for expansion. Supports 
Ohio Scientific's ultra low cost dynamic RAM boards or 
ultra high reliability static RAMs. 



ILLiUUL] 




j The C2-8P can support more in-case expansion than its 
four nearest competitors combined. 
m The C2-8P is the only BASIC-in-ROM computer that can 
be directly expanded today to a complete business 
system with line printer and 8" floppy disk drives. 
■ It is the only personal class computer that can be 
expanded to support a Hard Disk! (CD-74) 

The C2-8P is the fastest in BASIC, has the most sophisti- 
cated video display and is the most internally expandable 
personal computer. Therefore, it should be the highest 
priced? 

Wrong: The C2-8P is priced considerably below several 
models advertised in this magazine. The C2-8P is just one 
of several models of personal computers by Ohio 
Scientific, the company that first offered full feature 
BASIC-in-ROM personal computers. 

For more information, contact your local Ohio Scientific 
dealer or the factory at (216) 562-3101. 





1333 S. Chillicothe Road • Aurora, Ohio 44202 



BYTE August 1978 21 



The C3-B 

by Ohio Scientific 

The world's most powerful 

microcomputer system 

is far more affordable 

than you may think: 



STANDARD FEATURES: 

74 million byte Winchester tech- 
nology disk drive yields mainframe 
class file access speeds and 
capacity. 

High level data file software 
makes high performance file struc- 
tures like multikey ISAM easy to 
use. 

Triple processor CPU with 
6502A, 6800 and Z-80 gives the pro- 
grammer the best of all worlds in 
performance and versatility. 

Switchable and programmable 
CPU clocks at 1, 2 and 4 MHz yield 
maximum performance from each 
microprocessor. 




■ The included 6502A based ex- 
tended disk BASIC by Microsoft 
out-benchmarks every micro 
available, including 4 MHzZ-80 and 
LSI-11 with extended arithmetic. 

■ 48Kof high reliability static RAM 
is standard. 

■ High density 8" floppys provide 
program and data mobility from 
machine to machine. 

■ Completely integrated mechani- 
cal system with UL-recognized 
power supplies; continuous duty 
cycle cooling; modular construc- 
tion and rack slide mounted 
subassemblies. 



Based on a 16 slot Bus-oriented 
architecture with only 7 slots used 
in the base machine. 

Directly expandable to 300 
megabytes of disk, 768K of RAM in 
16 partitions, 16 communication 
ports, plus console and three 
printers. 

C3-B's have been in production 
since February, 1978, and are 
available now on very reasonable 
delivery schedules. 

The C3-B was designed by Ohio 
Scientific as the state of art in 
small business computing. The 
system places its power where it's 



needed in the small business 
environment; in the data files. The 
C3-B's advanced Winchester tech- 
nology disk, coupled with its smart 
controller and dedicated high 
speed memory channel, gives the 
C3-B data file performance com- 
parable with today's most powerful 
maxi-computers. 

The system can easily expand 
upward from single user to multi- 
user operation. Optional hardware 
and software include a real time 
clock and a 16 terminal (plus con- 
sole) real time operating system. 
Multipleterminal programs such as 
multi-station order entry can be 
programmed directly in BASIC. The 
system is super fast because multi- 
terminal I/O can be handled 
simultaneously with disk I/O due to 
the smart disk controller! 

By simply adding memory in the 
alternate partitions, the system can 
be expanded to full multi-tasking, 
multi-programming operation. The 
multi-terminal hardware supports 
both asynchronous and synchron- 
ous protocols in conjunction with 
terminals and smaller computers 
such as Ohio Scientific's BASIC- 
in — ROM and floppy disk based 
systems at transfer rates up to 
500K bits per second. 

■ The C3-B costs only slightly 
more than many floppy only com- 
puters but offers at least a thou- 
sand times performance improve- 
ment over such machines (50 times 
storage capacity multiplied by 20 
times access speed improvement). 

But what if your business client 
cannot justify starting with a C3-B? 
Then start with Ohio Scientific's in- 
expensive C3-S1 floppy disk based 
system running OS-65U. When he is 
ready, add the CD-74 big disk and 
directly transfer programs and files 
from floppy to big disk with NO 
modifications. 

That's upward expandability! 

*Rack as shown on right com- 
plete with 74 megabyte disk, dual 
floppys, 48K of static RAM, OS-65U 
operating system and one CRT ter- 
minal under $13,000. 

Multiple terminal systems with 
printers and applications software 
are priced in the mid-20's. 



1333 S. Chillicothe Road • Aurora, Ohio 44202 

BYTE August 1978 23 



On Building a Light-Seeking 



Robot Mechanism 



Stephen A Allen 
POB 2281 
Leucadia CA 92024 



Tony Rossetti 
1455 Arbor Av 
Los Altos CA 94022 



The idea of the Tee Toddler was born 
during the summer of 1976. We, as two 
undergraduate engineering students at Rice 
University in Houston, wanted to design a 
system using as much applicable electrical 
engineering as possible which could act on 
its own intelligence and which could also 
learn from its mistakes. We wanted to incor- 
porate state of the art electronics and 
actually develop a piece of working hard- 
ware. As a three credit hour course for two 
semesters we designed and built a small 
"robot" car, the Tee Toddler. 

The car is designed to track toward a 
shining light. It accomplishes this with the 
help of two processors: an on board Z-80 
microprocessor which communicates with a 
PDP-1 1 minicomputer over a two way digital 
radio link. The source light the Tee Toddler 
searches for can be anywhere on the horizon. 
This light is detected by a rotating eye which 
scans a 360 degree view five times per 
second (see photo 1). There is also an ultra- 
sonic sonar system capable of scanning 
simultaneously to the left and right of 




center to detect objects in the car's forward 
path (see photo 2). It can give ranges of up 
to five feet with 9 inch accuracy. The car 
has three forward and reverse speeds, five 
steering positions and a turning radius of five 
feel. Other standard equipment includes a 
front contact sensing bumper to detect ob- 
jects which the sonar missed; a source light 
monitor to determine if the car is at its 
destination; a source light verifier to indicate 
whether the car has gone behind something 
which blocks the source light; whitewall 
tires and positive traction rear end. Most 
power requirements were met by regulating 
a 12 V rechargeable battery. The Tee 
Toddler is a closed loop system. It con- 
stantly updates its knowledge of where 
the light is and what obstacles are in the 
way; thus operating as a self-sufficient real 
time system. Great flexibility inherent in the 
two processor system allows for develop- 
ment of the car's intelligence. The program- 
mer has lots of freedom in deciding how the 
car should deal with differing situations. 
This freedom in configuring the system be- 
tween the computers and a moving object 
is the true beauty of the Tee Toddler. The 
duties of each processor are different. The 
on board Z-80 handles the car's reflex 
maneuvers; the PDP-11 makes both real time 
navigational decisions and can also generate 
a better path for the car to take on a second 
trip over the same obstacle course toward 
the light. The normal mode of operation is 
set up with the PDP-11 in control of the car 
via the radio. The Z-80 is operated in an 



Photo 1 : The primary sensor of Tee Toddler 
is this photoelectric horizon scanner. The 
"eye" mounted on a Plexiglas standard and 
metal bracket scans a 360° field. The flat 
mirror rotates at five revolutions per second 
deflecting light into the phototransistor eye 
through a 45° angle. The position of the 
minoi is resolved imo one of 16 angular 
states by a slotted disk which passes through 
an optocoup/er. 



24 August 1978 © BYTE Publications Inc 




Figure I : The source light intensity monitor circuit is used to test proximity of 
the car to the goal of a shining light. The end of the car 's mission is indicated 
when the light intensity in a 1 20° forward viewing range exceeds a threshold set 
by the resistor RJ. 




interrupt mode. It stands by and records 
all course changes the car makes each time 
an obstacle is detected by sonar and also 
records each navigational correction made 
enroute to the light. In the case of collision 
or loss of the light, the Z-80 takes over 
control and remedies the situation before it 
returns control of the car to the PDP-11. At 
the end of the trip to the light the Z-80 
dumps all the course change vectors it has 
recorded (steering setting and distance 
traveled) to the PDP-11 over the radio 
channel. The PDP-11 then determines a 
better path for the car to take over the same 
course on a second run. 



center so that a contact on only one side 
will depress only one switch; however if the 
collision is head-on, both switches will be 
depressed. Two bits, one for each switch, are 
sent to the Z-80 computer. 

Sensors: Source Light Intensity Monitor 

The source light is the car's destination. 
The intensity monitor consists of three 
phototransistors which sense the intensity 
of light until the car is close enough to the 
source light (a foot) to stop; mission accom- 
plished (see figure 1). An angle of 120 de- 
grees is monitored, so the car must make 



Sensors: the Bumpers 

The bumper is needed only in case an 
object is encountered in front of the car 
which is too narrow to be seen by the 
sonar. The bumper has two microswitches 
behind it, one on each side. It pivots in the 



Photo 2: Tee Toddler's sonar system trans- 
ducers are illustrated in this front view. The 
black object in the center of the picture is 
the sonar transmitter which emits periodic 
pulses of sound at 40 kHz. The two cup-like 
objects with red interiors (equally spaced to 
the left and right of the center of the picture 
toward the top) are the receiving micro- 
phones. The sonar drive electronics of this 
system resolves four distance states on each 
receiving microphone with a maximum range 
of about five feet and an accuracy of about 
nine inches. 




Augusl 1978 © BYTE Publication! Inc 25 




Photo 3: A view of the Tee Toddler car from the rear with the differential 
and drive motor visible. (The battery and rear deck have been removed for 
purposes of this photograph.) 




ENCODING 
VALUES 



Figure 2: The direction of the light source relative to the forward direction of 
travel is measured by one of 16 angular states. The disk on which the main 
horizon scanning sensor's mirror is mounted has 16 slots which are sensed 
by an optocoupler which drives a counter. The counter is reset once per 
revolution of the disk by a separate sensor, so the angular states numbered 
through 15 are sensed. When the photosensor detects the target light, the 
current state of the scanning angle is latched and can be read by the Z-80 
mobile computer for transmission to the PDP-1 1 base computer. 



its final approach moving in a forward 
direction. 

Sensors: 

Rotating Eye and 
Source Light Verifier 

The rotating eye scans a plane about 18 
inches above the ground looking for a light 
source. Photo 1 shows the physical arrange- 
ment. It automatically adjusts its sensitivity 
for ambient light, much like the human eye. 
The response of its electronics is such that 
it can detect a penlight at 30 feet in a dark 
room. In a normally lighted room it is self- 
adjusting and can discriminate between two 
lights if one is about three times as bright as 
the other. 

As the disk rotates clockwise, the 16 slots 
in its edge pass through an optical switch 
and are counted by a 4 bit counter on the 
main deck. At the instant the light is spotted 
during the disk's rotation, the count is 
loaded into a 4 bit latch to be read by the 
computer. For example, if the light is 
spotted straight ahead, the count is eight. 
Figure 2 shows the logical definitions of 
the 16 possible directions (a missing slot 
corresponds to the state when the mirror is 
aimed to the rear; the counter is reset to 
zero in this condition). Thus any erroneous 
counts caused by ambiguous light sources 
or reflections are wiped out each time the 
disk begins a 360 degree scan. Once a num- 
ber is loaded into the latch it stays there 
until the light is spotted again and a new 
number is loaded. This reloading usually 
occurs once for each time the disk goes 
around. But if the light source suddenly 
becomes blocked by some object, the latch 
continues to hold the last number loaded 
even though there is no light being seen. To 
remedy this problem, a source light verifica- 
tion circuit is part of the electronics. This 
circuit sends a logical to the Z-80 as long 
as the light is actually still being spotted and 
a logical 1 when it is not. 

Steering Control 

The steering system has five possible posi- 
tions numbered arbitrarily 2, 3, 4, 5 and 6. 

2 is far left and 6 is far right. The command 
from the computer (PDP-11 or Z-80) has 

3 bits to specify these states. The number is 
converted to an analog voltage using a cur- 
rent sourced resistor ladder. The DC voltage 
enables a pulse width modulator which con- 
trols the two steering servos. The servos act 
in opposite directions on opposite ends of 
the front axle to turn the wheels. The pulse 
is sent at 67 Hz. See figure 3 for a block 
diagram of the steering control section. If 
the pulse is 1 ms long, the servos stay where 



26 August 1 978 © BYTE Publications Inc 



NORTH STAR 16K RAM 
A star from our Horizon 





m'W' 



ii 1 1 1 1 1 i 1 1 1 1 1 1 1 1 1 ■ 1 1 1 1 1 1 1 i 1 1 1 1 1 it • i r 

i.t»»mnii'IHMIIIfflHHHIIHHflHHHItM 



The North Star 1 6K RAM board is a star performer 
in our HORIZON computer. Just as important, it is the 
ideal memory for most other S-100 bus systems. No other 
RAM board can surpass the speed, reliability, and quality 
features of the North Star 16K RAM at any price. 

SPEED— The North Star 16K RAM is the fastest S-100 
bus memory board available. No wait states are required, 
even with a Z80 at 4MHz. And, of course, this outstand- 
ing 16K RAM will operate with both 8080 and Z80 proc- 
essors at 2MHz. Industry standard 200ns dynamic RAM 
chips are used. Invisible on-board refresh circuitry allows 
the processor to run at full speed. 

RELIABILITY — The North Star 16K RAM is designed to 
match the same high standards as our MICRO DISK 
SYSTEM and HORIZON computer. For example, all ad- 
dress and data signals are fully buffered. A parity check 
option is available with the 16K RAM for applications re- 
quiring immediate hardware error detection. If a memory 



error occurs, a status flip/flop is set and an interrupt can 
inform the processor. Or, if preferred, an error status 
light will go on. 

FEATURES —The North Star 16K RAM offers many de- 
sirable features. Addressability is switch-selectable to 
start at any 8K boundary. The board can perform bank 
switching for special software applications, such as time- 
sharing. Also, bank switching can be used to expand the 
amount of RAM beyond 64K bytes. Power consumption 
is minimal — the maximum power requirements are: 
.6A @ 8V; .4A @ + 16V, and .1A @ -16V. 

PRICES — $399 kit. $459 assembled, tested and burned- 
in. Parity option: $39 Kit. $59 assembled, tested and 
burned-in. 

Write for free color catalog or visit your local computer 
store. 



North Star ^k Computers 

2547 Ninth Street • Berkeley, California 94710 • (415) 549-0858 



Circle 285 on inquiry card. 



BYTE August 1978 27 




Photo 4: An overall view of the Tee Toddler taken from the side. Radio 
antennas and three levels of electronics on board are visible. The drive power 
source, a GeLi rechargeable battery, is at the right, with the front of the 
vehicle towards the left in this photograph. 



STEERING 

CENTERING 

ADJUSTMENT 



STEERING 
CONTROL BITS 



FROM 
PROCESSORS 




67Hz 
CLOCK 



VOLTAGE 

CONTROLLED 

PULSE 

WIDTH 

MODULATOR 



r\ 



L 



1 



STEERING 
SERVO 



r~\ 



w 

Figure 3: Steering system block diagram. Three bits from the Z-80 are de- 
coded by a TTL decoder which implements a simple weighted resistor digital 
to analog converter. The output of the converter is filtered to prevent sudden 
changes and, in turn, sets the pulse width seen by the two servos. The servos 
are Heathkit radio control devices which have a 5 pound thrust and a 1.5 
second full range response time. 



they are; if it is longer or shorter, they move 
the wheels left or right. The servos are 
Heathkit radio control modules with five 
pounds of thrust. The change in pulse width 
seen by the servos is electronically filtered 
since the command from the computers can 
change from far left to far right instan- 
taneously while the servos take about 
1.5 seconds to pull the wheels from full 
left to full right. 



Motor Control 

The motor speeds are given by the num- 
bers 0, 1 , 2 and 3 which are decoded to stop, 
slow, medium and fast. There is also a for- 
ward and reverse bit, thus making a total of 
7 motor states controlled by three binary 
digits. The motor control pulse width cir- 
cuit works the same as the steering control 
circuit, except that the pulse change is not 
filtered. The motor is a to 13 VDC "pan- 
cake" motor with a built-in 25:1 gear re- 
duction. The rear axle differential gear 
ratio is 1:1. The motor's speed is controlled 
by the pulse width of the 12 V 700 Hz 
pulses being sent to it by the control circuit. 
Forward and reverse directions are con- 
trolled by a relay. The motor draws a 
current of about 1/2 A when the car is 
cruising at 1 mph (1.6 kmph). Since the 
motor is a highly reactive load to the sharp 
edges of the control pulses, the motor is 
optically isolated to eliminate interference 
with the logic circuits of the on board Z-80 
system. Power amplification to drive the 
motor is accomplished after the isolator. 



Sonar System 

The sensing of objects in the car's path 
was originally intended to be done with light. 
This is difficult since objects with different 
textures at the same distance from the car 
would reflect different amounts of light. 
Pulsed infrared did not have the necessary 
intensity, and radar was ruled out because 
it would detect only metal objects. The 
existence of the National LM1812 sonar 
integrated circuit was probably the major 
factor enabling use of this sensor system. 
With this system the car is able to distinguish 
between obstacles to its left or right and can 
navigate between obstacles spaced only 
slightly farther apart than the car's width. 

The sonar unit on the car transmits a 
1 ins pulse at 40 kHz every 10 ms from a 
transducer mounted in the center of the 
car's front end (see photo 2). The echo is 
received separately on the right and left by 
two receiving transducers. Since there is 



28 August 1978 IB BYTE Publications Inc 



Collector's 
item 

The first 16 issues of BYTE — 

September, 1975 through December, 1976 — 

in two gold embossed hard cover volumes. 



$100 

complete set — 
two volumes 



00 



These individually numbered sets are person- 
ally signed by Carl T. Helmers, Jr., Editor-in- 
Chief of BYTE. 



As only 100 sets will be offered for sale, orders will be han- 
dled strictly on a first-come first-served basis. Send in the 
coupon today! These early issues of BYTE are packed with 
articles by your favorite writers: 

Helmers, Fylstra, Ryland, Dittrich, Chamberlin, Lancaster, 
Maurer, and many more. 

For your personalized set of BYTE's first 16 issues mail this 
coupon today! 




Carl T. Helmers, Jr., 

Editor-in-Chief, BYTE Magazine 




4/ejLuu. 



Yes, rush me my numbered and personalized 2-volume set of the first 16 issues of BYTE. 



Card Number 

Signature 

Address 

City 



□ Check enclosed for $100.00 

□ Bill BankAmericard/Visa □ Bill Master Charge 

Expiration Date 



Name (please print) 



State 



Zip 



Mail to: BYTE Publications, Inc. 
70 Main Street * Peterborough 



N.H. 03458 



August 1978© BYTE Publication! Inc 29 



really only one sonar transceiver, the receiv- 
ing transducers are multiplexed with field 
effect transistors to the receiver for three 
cycles of transmit and receive each. The 
count of the elapsed time between transmit 
and receive for each cycle is also multi- 
plexed into the left or right output latch 
to be ready by one of the computers. A 
block diagram of the sonar system is shown 
in figure 4. 

Since sound in air travels at about one 



foot per ms and a pulse is transmitted each 
ten ms, the maximum range is about five 
feet, which proves quite adequate. If no sonar 
echo is received, then the output latches are 
automatically loaded with the count 7, the 
maximum range possible. This is decoded by 
the computers as no object and thus no path 
correction is made. The sensitivity of the 
receiver is adjustable with a trimpot on the 
main deck, thus allowing different distance 
resolutions. 



Sonar Ranging Terms: Derived Quantities to Be 
Found 

■ Angle of object relative to forward direc- 

tion. 

T = Time of transit out to object (equivalent 
to a distance). T Q is one side of both left 
and right path triangles. 

Note: Using the law of cosines, and the two mea- 
surements, the algebra gives two equations (left 
and right signal path triangles) which can be 
solved exactly for two unknowns (T Q and angle 6). 



Sonar Ranging Terms: Measured Quantities 

B = Half the total distance between the two 

receivers. This forms one side of the 
triangles used with the law of cosines. 

R = Measured transit time, transmitter to 

object to right receiver. R = T Q + Tp 

L = Measured transit time, transmitter to 

object to left receiver. L = T + T. 



Sonar Ranging Terms: Miscellaneous 

Included angle used in law of cosines 
applied to left triangle. 

Included angle used in law of cosines 
applied to right triangle. 

Time of transit back from object to left 
receiver (equivalent to a distance). T^_ is 
one side of left signal path triangle. 

Time of transit back from object to right 
receiver (equivalent to a distance). Tp is 
one side of right signal path triangle. 



90-6 
90+fl 

T R 



MOD 24 
COUNTER 



3 KHz 

CLOCK 



FORWARD 
DIRECTION 




90° + fi 



TRANSMITTER 



ImS 

J~L 



RIGHT 
RECEIVER 



1_C 



FET 
MUX 



~N MUX 

SELECT 



TRANSCEIVER CIRCUIT 
(NATIONAL SEMICONDUCTOR) 



ECHO 
RECEIVED 



Figure 4: Block diagram of the Tee Toddler's sonar 
system. The heart of the sonar system is the National 
Semiconductor LM1812 Sonar Transceiver Circuit, 
which generates the sound pulse, detects a returning 
sound pulse and thus controls a count measured in a 4 
bit range counter. Given the two measurements of 
distance R and L, the known base line B, the relation- 
ships R = T + 7/? and L = T + T[_ it is possible to 
apply the plane trigonometry law of cosines (a? = b? 
+ c2 - 2bc COS (A)) to calculate the distance to the 
object T and the angle 0. 



ELAPSED TIME 
CLR COUNTER 



RANGE 
LEFT 



RANGE 
RIGHT 



DE-MUX 
CTRL 



OUTPUT 
TO PROCESSORS 



30 



August 1978 ©BYTE Publications Inc 



INTRODUCING 
THE G/2 PROGRAM 

LIBRARY. 



Now you don't have to be a programmer to use 

■|A||M #*#%■#§ MIltA^ I ^' ' ast here's a reliable, professional source of useful and entertaining programs for 
yUUI Wll IIJUIwl • your personal computer. The G/2 Program Library from GRT unlocks the full power 

of your personal computer. Without any programming knowledge on your part. 

The G/2 Program Library consists of applications programs pre-recorded on cassette tapes. A detailed manual with each 
cassette provides complete instructions. And G/2 programs contain prompting instructions. So they're easy to use every step of the 
way. Just load the tape and G/2 puts your computer to work. 

The first three G/2 program tapes are available now: For exciting family games, get Beat the House. You'll find Blackjack, 
Craps, Roulette and Slot Machine programs, with truly random chances and realistic, casino-like payoffs. 

Interested in your health? You'll want Clinic. Biorhythms, Dieting and Longevity programs give you new perspectives in health 
and happiness, along with some pleasant guidelines to follow. 

Need a better handle on your money? Buy Dollars & Sense. 
Checkbook is a comprehensive program to balance your account and 
keep within your budget, while Best Choice is a novel way to make 
decisions based on the facts you know and the relative importance of 
each. Use it for everything from choosing a new car to selecting 
your next stereo. 

Soon, every dealer that handles personal computers will stock the 
G/2 Program Library. For the G/2 dealer nearest you, call us toll-free at 
800/538-1770. (In California, 800/662-9810.) And if your favorite 
computer dealer doesn't yet offer G/2, have him call the same number. 

Soon you'll see G/2 program tapes in many other fields of interest. 
The G/2 Program Library is now available for use with SOL, SWTPC, 
Exidy, TRS-80 and Apple personal computers. Just select the package 
marked for the computer you own. 

Start building your G/2 Program Library now. And put the full 
power of your computer yur nr A^QN 
to work for you YOU BOUGHT 

YOUR COMPUTER. 




NT 



A product of GRT Corporation 
Consumer Computer Group 
1286 North Lawrence Station Road 
Sunnyvale, California 94086 
(408)734-2910 

Circle 148 on inquiry card. 





Figure 5: Block diagram of the Tee Toddler 
computer systems. The PDP-11 is a large 
system which is immobile; it communicates 
with the mobile Z-80 in the Tee Toddler car 
using FM data links at separate frequencies. 
The FM transmitters and receivers convert 
binary data into a series of transmitted 
frequency encoded modulations and vice 
versa. 




This type of sonar system is really a 
minimal one. Doppler shift detection could 
also be accomplished fairly easily to allow 
determination of speed of a moving obstacle. 
Echo amplitude analysis would also be worth 
investigating since it would help solve the 
problem of echo frame overlap; such overlap 
exists when an echo from the previous 
sounding returns late, after bouncing off a 
far away object, resulting in two echos for 
the current frame. The strongest of the two 
(or more) echos should be taken as the true 
one. The Tee Toddler's system triggers a 
9 ms oneshot on the first echo thereby 
ignoring all secondary echos. 

Radio Data Links 

An encoder transforms parallel bits into 
serial tones to be transmitted over a fre- 
quency modulated channel. One channel 
is from the Tee Toddler car to the PDP-11 
computer at 96 MHz. The other channel is 
from the PDP-11 computer to the car at 
450 MHz. The serial data encoder and 
transmitter at the PDP-11 base station are 
essentially identical to the car's versions 
except for the number of bits per word of 
data. A two-tone modulation system is 
used. This means that each binary state is 
encoded into one of two different frequen- 
cies for transmission. At the modulator a 



logical 1 is represented by a 2500 Hz signal 
and a logical is represented by a 1900 Hz 
signal. 

The receiver and data decoder accepts the 
string of audio tones from the FM receiver, 
decodes them into 1s and 0s using phase 
locked loops and converts back to a parallel 
data format. While our prototype did not 
use standard circuitry, a standard asynchro- 
nous serial communications discipline such 
as that provided by a UART or ACIA would 
work well in this application. 

Power Sources 

The power for most circuits is derived 
from a 1 2 V 4.5 Amp-Hour GeLi cell recharge- 
able battery. The battery was drilled and 
tapped at 8 V to power a 5 V regulator for 
the TTL circuits and for the Z-80 micro- 
computer. The steering servos required 
their own set of four penlight batteries (also 
rechargeable), and the 1702 read only mem- 
ory holding the Z-80 program required a 
separated -9 V supply, derived from three 
parallel transistor radio batteries. This power 
supply system is capable of running the car 
for several hours before any recharging is 
necessary. 

Computer Control 

As has been mentioned, the car is con- 



32 Augusi 1978 © BYTE Publications Inc 



trolled by two separate computers. The com- 
munication paths between the computers 
and the car are shown in the system diagram 
of figure 5. In actuality, only one of the 
computers can communicate with the car at 
a time. This is the case for several reasons. 
First, there are only three control inputs to 
the car to make it operate. These are the 
speed, direction and steering controls. Since 
these inputs can originate at either com- 
puter, a multiplexing scheme had to be used. 
Second, only the PDP-11 actually makes 
decisions based on sensor information 
from the car. The Z-80's control of the car's 
movements is more like a reflex action, in 
that it performs a canned routine when 
invoked by the car's sensors. Last, the func- 
tions are separated to facilitate the transition 
to a total on board control system, since the 
PDP-1 1 can be replaced easily by another on 
board microcomputer. 

The motivation behind this configuration 
is based on several criteria. Since part of the 
system was going to be standing alone, some 
of the major considerations were power 
consumption, various power supply require- 
ments and ease of operation. With all these 
considered, it was decided that a Z-80 with 
its single 5 V power supply requirement and 
single phase clock was a logical candidate. 
The 1 6 bit PDP-1 1 was used because it could 
do computations at a greater speed than the 
8 bit Z-80. 

The on board microprocessor has several 
functions associated with the control of the 
car. One function is to supervise all data and 
control channels to and from the car. In 
other words, it has the responsibility of 
deciding whether the PDP-11 or the Z-80 is 
going to control the movements of the car 
and which of the two computers is going to 
receive the information from the car's sensors. 
The routing of these different channels of 
information is accomplished by the use of 
data selectors. The Z-80 controls the data 
selectors such that the information is routed 
to the correct device at the correct time. 
Information coming in to the car to control 
its movements comes from either the 
PDP-11 or the microprocessor. It comes 
from the PDP-11, over the radio link, if the 
car's sensors indicate one of the following 
conditions: 

• The car has reached the source light. 

• An object has been detected by the 
sonar system on either the left or the 
right. 

• The car has spotted the source light. 

The PDP-1 1 then analyzes these condi- 
tions according to the hierarchy of impor- 
tance, as is shown in the decision tree of 
algorithm 1, and then communicates to the 





f START J 


YES 




J 


I 








\AT LIGHT^- 

|no 

/6bject\ 

<f DETECTED > 

\bv sonar/ 
[no 

/sourceV 

S LIGHT \. 


STOP CAR, 
RECEIVE 
MOVEMENT 
VECTORS 
FROM Z-80 


YES 






YES 






^DETECTED/ 
[NO 










CONTINUE 

PRESENT 

COURSE 


ADJUST CAR 

PATH 

ACCORDINGLY 




". 







Algorithm I: The base computer's executive program in outline form. This 
decision tree is executed in the PDP-1 1 each time a car sensor word is received. 
If any of the tests results in an affirmative answer, the program executes a 
routine designed for that specific state. Each routine takes into account 
past information of where the light was spotted. The sonar detection routines 
also take into account any objects which have recently been passed. These 
things are considered so that the car proceeds in the direction of the light 
and does not collide with any objects while moving in reverse. There is no 
specific way to stop the system except by interrupting the PDP-1 1 and issuing 
a control word to the car to stop it. 



car the appropriate movement corrections 
to make. Control information to the car 
originates from the Z-80 when one of the 
following car sensor conditions arises: 

• Contact with an object has been 
indicated on either the left or right 
side by the front bumper. 

• The car has lost sight of the source 
light. 

The microcomputer controls the movements 
of the car if either condition is met and then 
gives control back to the PDP-1 1 when it 
has finished its corresponding task. 

Another function of the on board micro- 
computer is to store all movement vectors 
associated with the car's path. These vectors 
indicate the steering angle, the direction of 
travel and the length of travel of the car. 
Therefore, when the car changes direction or 
steering angle, a vector is stored in memory 
which correlates to how far the car traveled 
at the previous setting. Thus, when the 
task of finding the light is accomplished, 
the on board memory contains all the 
different moves the car made to reach 



August 1978 © BYTE Publications Inc 33 



Une __* advan< 



WP 

ljke Hazelti" e » 
my llKe 



* 







M**"" *,** 



34 BYTE Augusc 1978 



A 





Avai 



Sw« 



Hazeltine 



Hazeltine Corporation, Computer Terminal Equipment, Greenlawn, N.Y. 11740 (516) 549-8800 Telex 96-1435 

EAST: NY- (212) 586-1970 ! [CENTRAL: Chicago 1312) 986-1414 V SOUTH: Atlanta (404) 952-8444 ' .WEST: Burlingame (S.F.) (415) 342-6070 

ENGLAND: Hazeltine Ltd. 01-948-3111 Telex (85D-928572 . GERMANY: Hazeltine GmbH 0611-590748 Telex (841)416924 

FOR WORLDWIDE SALES INFORMATION CALL: (516) 549-8800 



Circle 156 on inquiry card. 



BYTE August 1978 35 





f START J 
















INITIALIZE 
DATA AND 
CONTROL 
PATHS 












NO 




CES 








Jyes 


/bumper\. 


BACK UP, 
THEN FORWARD 
PAST OBJECT 


\RIGHT y? 


r-ES 


"1 


|N0 




/bumperN. 


BACK UP, 
THEN FORWARD 
PAST OBJECT 


S. LEFT S 


r-ES 


*", 


| NO 




/coursers 


STORE 

MOVEMENT 

VECTOR 


^.CHANGE jr 


rES 


* 


|N0 




S LOST N> 


BACK UP 
UNTIL SEE 
LIGHT THEN 
FORWARD 


\ LIGHT S 




*1 




NO 






DUMP 
TRANSMIT 
MOVEMENT 
VECTOR 









Algorithm 2: The mobile computer's executive program, in outline form. In 
the initialization procedure the Z-80 sets up the memory areas, resets the 
wheel rotation counter and sets the data selectors for the PDP-J I to control 
the car and the car sensor status word to be transmitted to the PDP-1 1. The 
processor then awaits an interrupt. When the Z-80 is interrupted, the tests are 
executed in this order. After each routine is completed, control is returned to 
the PDP-11. 

the light. With this information the car 
has a new path calculated for it by the mini- 
computer. This path allows the car to drive 
to the light from the same starting position 
without the use of any of its sensors and 
without having to maneuver around a single 
object, since it already knows where they 
are located. In a very loose sense then, the 
system has learned about its environment 
and used this knowledge to improve its pro- 
ficiency at the task of finding the source 
light, much like a mouse in a maze. 

The last major function of the micro- 
computer is to pass the movement vectors 
to the PDP-1 1 once the car has reached 
its destination. This is accomplished by 
having the minicomputer issue a "dump" 
command signal over the radio to the Z-80. 
Using a handshake system, the Z-80 sends 



the movement vectors to the PDP-1 1 one 
at a time. The decision hierarchy of the Z-80 
program is shown in algorithm 2. 

PDP-1 1 Base 

The PDP-11 minicomputer is the actual 
brain of the system. It has the ability to 
decide where to move the car in order to 
approach the light and yet avoid objects on 
the way. Inputs to the PDP-11 come from 
either the car's sensors or the microcomputer 
memory. If the inputs are from the car they 
indicate the current status of the sonar left 
and sonar right sensors, the 360 degree 
rotating eye and the source light intensity 
monitor. These are processed according 
to the following hierarchy. First the source 
light intensity monitor signal is checked to 
determine if the car has reached its destina- 
tion. This indicator is checked first because 
it will indicate if the total task has been 
accomplished. If this condition is true, 
the PDP-1 1 computer sends a message to the 
car telling it to stop and telling the Z-80 to 
start unloading its memory of movement 
vectors. The handshake system used is initi- 
ated by the car informing the PDP-11 base 
computer that the car has reached the light. 
The minicomputer then informs the micro- 
computer to start unloading the memory, 
at which time the minicomputer checks 
each incoming vector to determine if it is 
the last. If not, the PDP-11 asks for another 
vector to be transferred. This continues 
until all vectors are transferred. 

Second, the sonar sensor inputs are 
examined to see if any objects are being 
detected. If an object is detected, then a 
special routine analyzes the situation accord- 
ing to which side the object is detected 
and how far away it is. If the object is far 
enough away for the car to maneuver around 
itwithouthavingto back up, then the PDP-1 1 
commands the car to steer to the left or 
right, whichever is appropriate, to avoid the 
object which is in the way. If the object is 
detected by both sensors, then the side 
which detects it as being closer overrides 
the other. In the event that the distance 
measurements are equal, the computer 
arbitrarily chooses the right side as having a 
higher priority. Obstacles detected at a 
range too close for the car to maneuver 
around while proceeding forward cause 
the car to back up. An obstacle detected 
at a very close range on the right causes the 
car to back up. However, the steering 
position for this movement depends on 
whether the car was steering to the left, 
right or center. If the car was proceeding to 
the right, then it must know, from a previous 
sensor reading, that the source light is to the 
right. If this is the case, the car backs up 



36 August 1978 © BYTE Publications Inc 



GET THE ^ LOW DOWN BEFORE YOU BUY 



SO YOU WANT TO 
BUY A COMPUTER?? 



This new book presents an objective look at the top 24 micro systems sold 
throughout the world. 

It discusses the Pros and Cons of each system in No Uncertain Terms and takes a 
straightforward look at the micro computer industry as it relates to YOU. 

Written especially for the layman in a language he can understand. Profit from the 
mistakes of others. 



Includes hundreds of references. 
Table of Contents 

1 . Introduction 

2. Don't get hung up on the chips 

3. Which category do you fit into 

4. Now -About the Hardware 

5. Peripherials that plug in? 

6. What? No Software! 

7. Helpful Suggestions before spending money 

8. Addresses 



$4.50 per Volume 
Volume discounts available 




SCIENTIFIC RESEARCH 

P.O. Box 490099-B 
Key Biscayne, Florida 33149 

Phone Orders Call 800-327-6543 



Add $1 handling, all domestic shipments 
sent U.P.S. except APO and P.O. Box 
which go parcel post. Foreign orders add 
$4 for air shipment and make payable in 
U.S. funds. 



BYTE August 1978 37 



is 



&■ 



Jr 



INITIAL PATH 
OF CAR 



AFTER SIGHTING 
TURN WHEELS 



CASE A « 

LIGHT SEEN AT 
POSITION 4 



r\ / 



INITIAL SIGHTING 
WITH CAR AT 
THIS LOCATION 



\ 
\ 

TAKE PATH A \ 
' . AFTER SACK UP , 
N FOLLOWING 
S> POSITION 4 
K SIGHTING 
\ 
\ 
\ 



CASE 8 

LIGHT SEEN AT 
POSITION 2 



BACK UP ON CURVED PATH 
AFTER SIGHTING THROUGH 
FIXED LENGTH 



\ 






\ 



TAKE PATH 8 ^ 
AFTER BACK UP S 
FOLLOWING *. 

POSITION 2 
SIGHTING 




CAR AT THIS 
LOCATION AFTER 
BACKING UP 



Figure 6: This diagram illustrates paths the car can make when confronted 
with typical situations. Assume the car is moving straight and forward and 
detects the light in either the number 2 or 4 position. The PDP-1 1 has control 
and moves the steering to the right and backs up for a certain distance. If the 
light was spotted in position 4 the car proceeds along path A with the steering 
set back to the center. But if the light was spotted at position 2 the car moves 
along path B with the steering set to the left. If the light had been spotted at 
position I, almost directly behind the car, the maneuver would also have been 
along path B. However, since it would not be able to approach the light at a 
very straight angle, it would have to back up again and set the steering for a 
more direct path. 

with the steering set to the left. After backing 
up for a certain amount of time, the car 
changes the steering to the right and pro- 
ceeds forward. This causes the car to maneu- 
ver around the obstacle and also sets it on a 
better path to the source light. In effect, the 
car has used past knowledge to evaluate the 
present situation. If the steering had been to 
the left originally, then the computer would 
set the steering to the right. The car then 
proceeds in reverse for a given amount of 
time and then changes its steering position 
to the left and proceeds forward for an 
additional period of time. This action makes 
the car maneuver around the object and 
along a better path. An original steering 
position in the center again causes the right 
side to override the left. Although all these 
controls and decisions are handled by the 



minicomputer, the results do incorporate 
the use of the on board microcomputer. 
The microcomputer is used to store all 
movement vectors pertaining to all direc- 
tion or steering changes. This is accomplished 
by having the PDP-11 computer issue a 
course change signal to the Z-80 at the 
same time it issues the new control word 
to the car. The Z-80 on board computer 
then stores the previous movement vector 
in memory, then returns control to the 
minicomputer. 

The third sensor readings used by the 
PDP-1 1 are the values from the rotating 
eye. These sensors indicate where the 
light is located with respect to the current 
position of the car as shown in figure 2. 
Basically, the world, as the car sees it, has 
been divided into 16 windows, each allowing 
a different view of the horizon. A number 
has been assigned to each separate slice, thus 
giving an easy identification and recognition 
scheme for evaluating the position of the 
source light. For example, the semicircle in 
front of the car has nine windows associated 
with it, four to the left, four to the right, 
and one for the center. Thus, since straight 
ahead has been declared as having a value of 
8, then the far left becomes 4 and the far 
right becomes 12. Therefore, by examining 
the value, the computer can tell where the 
source light is and then adjust the path to 
proceed in that direction. If the light is 
spotted in the forward semicircle between 
values 5 and 11, the course adjustments are 
quite straightforward. The steering is merely 
positioned so as to point the car in the 
direction of the light. 

However, if the light is spotted in the 
aft semicircle or to the extreme sides, a 
different approach must be taken. Instead 
of having the car do a complete 180 degree 
turn, we decided to have the car perform 
several backward and forward movements. 
By doing this we reduced the possibility 
of contacting objects by reducing the space 
needed to perform the maneuvers. For 
example, if the light is detected in the num- 
ber 1 through 4 windows, the computer 
backs the car up with the steering set to the 
right. The distance it backs up depends on 
which window the light was spotted in. For 
example, if it was spotted at position 4, the 
extreme left, then the car would back up 
far enough so that when it stopped it would 
be facing directly toward the light and could 
then proceed in a straightforward direction 
(path A in figure 6). If, however, the light 
had been spotted more to the rear, the car 
would back up a bit further and then have 
the steering set to the left position and pro- 
ceed forward. The exact opposite action 
would have taken place had the light been 



38 



August 1978 ©BYTE Publications Inc 




UNDERSTANDING MICRO- 
COMPUTERS answers these 
and hundreds of other ques- 
tions clearly in this profusely il- 
lustrated, easy-reading "must" 
book. You'll find fundamental 
concepts behind the operation of 
virtually all microcomputers, writ- 
ten in simple English so that any- 
one can gain the extra knowledge 
needed to read and understand 
computer magazines, manufac- 
turers' literature, and feel "at 
home" around computers. Here 
are just a few items discussed . . . 

— How a CPU is organized and 
how it follows sequences of di- 
rectives to solve problems 

— Illustrates basic instructions 
from almost every class of mi- 
croprocessor 

— Discusses common memory 
addressing modes— illustrates 
typical uses 



What you must know to tell a 
computer what to do when us- 
ing machine language pro- 
gramming methods 

- Explains use of flow charts, 
program worksheets, hand as- 
sembly of source codes into 
object codes, memory maps, 
purpose of an Editor, Assem- 
bler, Monitor 

Benefits of using a high level 
language 

•Introduction to BASIC 
How a computer communi- 
cates. Types of commonly used 
input/output devices and their 
operational concepts 
Practical aspects of selecting 
a small computer system 
Plus, hundreds of other practi- 
cal facts and information 



If you are at all curious about 
small computers, you must own 
this 300 page no-nonsense text 
that reads like a simple book! In- 
cludes an easy-to-use glossary 
of key microcomputer oriented 
words. UNDERSTANDING MICRO- 
COMPUTERS. The name says it 
all. Order your copy now! 

fT ICELBI COMPUIED 
fccOMIllYIMO INC. 

^^ Dept. 000 

Post Office Box 133 PP STN 
Milford, CT 06460 

Price shown for North American customers. Master 
Charge, Postal and Bank Money Orders preferred. 
Personal checks delay shipping up to 4 weeks. 
Pricing, specifications, availability subject to 
change without notice. SCELBI Books are avail- 
able in many fine Computer Stores. 



Now available in hardcover for only $14.95 . . . 
and paperback for only $9.95. Order yours today! 

Circle 310 on inquiry card. 



IMPORTANT! Include 75iJ postage /handling 
for each item delivered by U.S. Mail Book 
Rate; or $2 for each item shipped First 
Class or via UPS. 



BYTE August 1978 39 




RIGHT BUMPER 
CONTACT WITH 
OBJECT INVISIBLE 
TO SONAR 



BACK UP WITH 
STEERING RESET 



MOVE FORWARD 
ON NEW COURSE 
TOWARD LIGHT 
BUT NOT IDENTICAL 
TO BACKING UP 
HEADING) 




spotted on the opposite side. Once again the 
on board computer would have been inter- 
rupted to store all course changes associated 
with the maneuvers. The problem of running 
into objects while proceeding in reverse is 
actually of minimal concern due to this 
method of reaching the light when it is 
spotted in the rear. If there had been an 
object there it presumably would have been 
detected and the path adjusted accordingly. 
However, this adjustment would not have 
been made without taking into account 
where the light was being spotted. Since 
this is the case, it is not possible for the car 
to be turning left or right in a forward direc- 
tion if the light is actually behind the car. 
If, however, the light has not been spotted 
yet, then it is feasible that the car can run 
into something in its reverse move, since no 
attempt is being made to look back into the 
movement vector memory to determine if 
an object has just been maneuvered around. 

The final function of the minicomputer is 
to stop the car once it has reached the 
source light. This is accomplished by detect- 
ing the source light intensity monitor bit as 
it changes to the active state. Once this 
occurs the minicomputer stops the car and 
at the same time initiates the handshake 
operation with the on board computer to 
start the transfer of the movement vectors. 
The minicomputer stores these vectors as 
they come over the radio until all have been 
passed. The last vector is actually a null 
vector, or all zero, which indicates all vectors 
are transferred. The minicomputer now 
does one of two things. It can automati- 



Figure 7: This diagram illustrates two dif- 
ferent situations of the car having contact on 
the right with an obstacle. The obstacle 
size is exaggerated for the sake of illustra- 
tion. The diagram on the left depicts the car 
steering to the left toward the light when 
it strikes the object. The Z-80 takes control 
and adjusts the steering to the right and 
backs the car up a certain distance. The 
steering is then set to the center position and 
the car proceeds forward. On the right, the 
car is proceeding to the right toward the 
light. Here the Z-80 sets the steering to the 
left, backs the car up then adjusts the 
steering to the center and proceeds forward. 
In each instance the car maneuvers around 
the obstacle and on a path toward the light. 



cally plot out a new course for the car 
to take, or it can display the vectors graph- 
ically on a screen. With the latter method 
the user is able to see all the moves and 
recalculate a new path himself based on his 
visual perception of the path taken. The 
automatic method is simply a sequential 
analysis of the vectors by the computer. 
If the car makes a move in reverse the com- 
puter assumes that either an object was 
detected or the light was spotted behind 
the car. In either case the computer adjusts 
a move previous to this occurrence, thus 
allowing the car to anticipate the upcoming 
situation and act in accordance with the 
situation. By adjusting these movements 
prior to detecting the need to reverse direc- 
tion the computer has eliminated this need 
altogether and has thus "curved out" the 
path, making broad sweeping turns as 
opposed to jerky forward and backward 
movements. 



40 



August 19780BYTE Publications Inc 



Microcomputer Functions 

The on board Z-80 computer provides the 
reflexes and signal control for the whole 
system. In the event that the car hits a thin 
object which is not detected by the sonar, 
a reflex action is invoked, much like a human 
response to a given stimulus. The various 
reflex actions this computer controls are: 
loss of sight of the light and touch stimulus 
from either sides of the bumper. To initiate 
a microcomputer routine for either the 
reflex actions or the control functions, one 
of the following interrupt inputs must 
become active: 



A signal from the front bumper. 

A signal indicating loss of the source 

light. 

A course change. 

A request to dump the movement 

vectors. 



All these signals are ORd together, thus 
enabling any one of them to initiate an inter- 
rupt. When the Z-80 is interrupted it interro- 
gates an external buffer to determine which 
condition caused the interrupt. The program 
(see algorithm 2) then checks each bit, one 
at a time, to determine which one is active. 
If more than one is active, it only processes 
the first one checked which is active. If none 
of the lines is active, then the program 
defaults to the dump line being active. Upon 
determining which stimulus is active the pro- 
gram executes a specific routine for that 
particular interrupt. 

The bumper right and bumper left routines 
are essentially the same except for the steer- 
ing positions being reversed. If contact is 
detected with the right side of the bumper, 
the Z-80 receives an interrupt and the car 
automatically backs up. Figure 7 illustrates 
the bumper reflex. The direction in which it 
backs up depends on the direction it was 
travelling when it collided with the object. 
If the steering was set to the right, then 
it must have previously detected the source 
light to the right (see right illustration in 
figure 7). Then, in order to maintain this 
general direction, the car backs up with the 
steering set to the left. After backing up for 
a certain time the car sets the steering to the 
right and proceeds forward past the object 
and toward the light. Although this setting 
is not a direct heading toward the light it is 
in the general direction and it has avoided 
the object. 

If the direction of travel was to the left, 
(left illustration, figure 7) then the car backs 
up with the steering to the right and then 
proceeds forward with the steering set to 
the center. All steering actions would simply 
be reversed for a contact on the left. There- 



POSITION A 
(LIGHT OBSCURED 
BY OBSTACLE) / 




/ I \ 



* BACK UP ALONG ' 

I CURVE WITH CENTER ; 

| TO RIGHT * / 



POSITION B 




BACK UP ALONG 
CURVE WITH 

* CENTER TO LEFT 



POSITION C 



Figure 8: This diagram illustrates the Z-80 
reflex for the case in which the car has lost 
sight of the light at position A. The Z-80 
instructs the car to do a reverse S turn. First 
it adjusts the steering to begin the turn and 
travel to position B. Then it adjusts the 
steering to have a center of curvature to the 
left and continues reverse travel to position 
C. At the end of the path, the steering 
is again set to the appropriate position for a 
course towards the light and the car resumes 
forward travel without its goal being obscured 
by the obstacle. 



fore it is easy to see that all the reactions to 
the stimuli are preprogrammed and always 
net the same result, thus they exhibit a 
reflex action. 

The other reflex action is quite similar 
(see figure 8). If the car is travelling in any 
direction and loses sight of the source light, 
then apparently what has happened is that 
an object has come between the car and the 
light, thus obscuring the car's "vision" as at 
position A in figure 8. Although the car 
knows the object is there, it cannot detect 



August 1978 © BYTE Publications Inc 41 



its exact location. What the car does then is 
back up with the steering in the same 
position, then after a certain time it changes 
the steering to the opposite side and con- 
tinues to back up. It continues backing for 
another period of time and then sets the 
steering to the center and proceeds forward. 
This procedure causes the car to move to a 
new position where it can again see the 
source light. This again exhibits a certain 
reflex action controlled by the Z-80. 

Since these reflex routines involve many 
adjustments to the car's path, it is necessary 
to record all of these separate movements. 
Therefore, at the end of each segmented 
move the routines call on the course change 
routine to record the current wheel rotation 
count, direction of travel and the steering 
position. This course change routine can be 
called on from either the Z-80 through 
another routine or directly from the PDP-1 1 . 
The routine reads a buffer register which 
contains the current number of wheel rota- 
tions at this particular steering and direction 
position. Once this vector is stored in mem- 
ory, the routine resets the wheel counter to 
zero in order for it to count the correct 
number of revolutions at the next steering 
and direction setting. The last function of 
the Z-80 is to transfer all the movement 
vectors from the on board memory to the 
PDP-11. As has been discussed, the Z-80 
responds to a request from the PDP-1 1 by 
sending the vectors on a last in first out 
basis, one at a time in correspondence with 
the handshake system. Once all vectors are 
passed the Z-80 reinitializes the car and 
passes control to the minicomputer. 

After any of these routines has been proc- 
essed the Z-80 returns control of the car to 
the PDP-11. 

Computer Design Specifics 

The microcomputer designed for this 
robotic application is equipped with only 
the bare essentials. The total system con- 
sists of 256 bytes of programmable read 
only memory, I K bytes of volatile pro- 
grammable memory, three bidirectional IO 
ports, one Z-80 microprocessor and one 8 
bit line driver. The read only memory is a 
1702 UV erascable part which contains the 
program. The programmable memory is 
made up of eight 2102 parts. The IO chip is 
an Intel 8255 and was chosen because of 
the number of ports available. 

When designing a dedicated system like 



this, one must keep in mind that the proba- 
bility of it working the first time is very 
nearly zero. Therefore, care must be taken 
to make the system as easy to debug as 
possible. This system was designed with this 
in mind and thus several additional functions 
were included in the design. A reset switch 
is installed on the computer board to aid in 
checking different functions of the system 
under the same circumstances. A single step 
switch is also located on the board. By using 
this, one can step through the program and 
examine different signals to determine their 
validity. The line driver was installed specifi- 
cally to allow the examination of the data 
lines. Included in the design are provisions 
for the addition of 1702 memory chips up 
to a total of 1 K bytes of program memory. 
Since the system was of a prototype nature 
it was built on a perforated board and was 
wire wrapped. Care was also taken in the use 
of the PDP-11. Before the final application 
program was written several simple test 
programs were written which checked out 
the two way radio links and the responses of 
the car to commands. With the test programs 
it was possible to enter commands at a termi- 
nal and control the actions of the car in a 
remote control fashion as well as to receive a 
continuous read out of the current status of 
the car's sensors which are used by the mini- 
computer. This proved to be one of the 
invaluable debugging aids of the overall 
system. 

Concluding Comments 

Projects involved with robotics are a logi- 
cal extension of microcomputer technology. 
The possibilities of building such dedicated 
"artificially intelligent" machines are almost 
limitless. It is not unreasonable to think that 
personal computer experimenters could build 
a robotic machine at home. However, a little 
forethought is worth a lot of time and effort 
in the end. Think about what the machine 
is going to do, and what is necessary to 
accomplish this. Build the system in modules 
which are easy to interface to each other and 
also easy to debug and repair. The capabilities 
of the machine are only bounded by the 
imagination of the designer. Perhaps the 
ultimate goal of a robotic machine is to have 
it perform its designated task consistently. 

We think that Tee Toddler has proved 
an adequate fulfillment of that goal in the 
limited context of a light seeking mobile 
device. ■ 



42 August 1978©BYTE Publications Inc 



Memory Makes the Computer, 
Central Data Makes the Memory 




Memory is an important part of a computer 
system. So don't even think of settling for a 
poor quality RAM board. Central Data offers 
carefully engineered 16K, 24K and 32K RAM 
boards to suit your needs. We take our RAM 
boards seriously, so should you. 

Reliability. Each one of our boards comes com- 
pletely assembled, tested and burned in. No 
fiddling with an infinite number of parts from a 
kit or costly investment in equipment to test 
your board. Each one of our boards is backed by 
a one year warranty to insure your satisfaction. 

Expandability. We offer a 1 6K RAM board 
with capacity to 32K. You can purchase a 16K 
board and expand later or buy a full 32K . 
I 

Please send me the following: Name 

D 1 6K RAM board ( $ 289) Address _ 

□ 32K RAM board ($475) City 

□ additional information State 

I enclose $ 

111. residents add sales tax. 

I Central Data P.O. Box 2484, Sta. A Champaign, II 61820 

Circle 45 on inquiry card. 



Performance. Unlike some dynamic memory 
boards, ours uses an invisible refresh that inserts 
refresh cycles between your computer 's normal 
memory access cycles. This eliminates loss in 
performance of your computer with lengthy 
refresh cycles. 

Power. Our board uses less than one-half the 
power of a static RAM . 
Price. You can buy a 16K RAM board, com- 
pletely ready to use, for only $289. A full 32K 
RAM board is available for $475, or you can 
add on later for only $200. 

When you buy our memory board, you'll 
be buying the best equipment at the best price. 
Order yours today by mail or phone. 



"1 



Zip„ 



Central 
data 

P.O. Box 2484, Sta. A 
Champaign, 1161820 
(217)359-8010 

BYTE August 1978 43 



SYNCHRO SOUND 



ENTERPRISES, INC.I 

One-stop shopping 
for Hardware and Software 

Everything you need in small computer systems with special emphasis 

on TERMINALS! Look at these units... compare price, quality, delivery, 

service.. .and you'll see why you don't have to look anyplace else! 




LEAR SIEGLER ADM 3A TERMINAL 



• Full addressable cursor 

• Display format— 24 lines 
of 80 characters per line 

• Communications rates— 75 to 
19,200 Baud 

• Computer interfaces 
— El A standard 



ADDS REGENT 100 
VIDEO DISPLAY 
TERMINAL 

Display Format— 80 characters per line by 24 
lines. 25th line reserved for terminal status. Re- 
verse video, underline, half and zero intensity 
and blinking are all standard features. 



ADM3A 
Kit .... 
ADM3A 
Assembled . . 
Lower Case 
option 



$759.95 

854.95 

69.00 







$1325.00 



TELETYPE MODEL 43 PRINTER 

• 132 Characters per line 

• 110 or 300 Baud switch selectable 

• Full keyboard 

• RS 232C Serial Interface standard <£lOQQ QO 



OKIDATA MODEL 110 
LINE PRINTER 

• 110 CPS dot matrix 

Feed" $1199.00 

EST 1349.00 

RS 232C 

Interface... 260.00 



OKIDATA MODEL 22 
LINE PRINTER 




• 125 lines per minute 
132-column print line 

• Upper/lowercase 

• 8 different 
character sizes 

• 12 IPS paper slew 

Tractor Feed $2449.00 

RS 232C Serial Interface. . . 379.00 



/ 



DECWRITER II 

• 132 column printing 

• 10-30 CPS 

• Full keyboard 

• Tractor feed 

$1495.00 




44 BYTE Auguil 1978 



Circle 356 on inquiry card. 



SYNCHRO-SOUND 



ENTERPRISES, INC.I 



CENTRONICS 
703 SERIAL 
PRINTER 




• Low 
cost 
of ownership 

• Bidirectional logic seeking printing 

• Microprocessor electronics 

• Excellent print quality 



CENTRONICS 761 PRINTER 

• 300 Baud serial transmission 

• Bidirectional and incremental printing 

• RS232, CCITT-V24, or 
current loop interface 

• Baud selection (110/150/300) 

$2025.00| 

Receive only version 

1895.001 



KSR with Keyboard. 



$2805.00 



IMSAI 8080 MICROCOMPUTER 
• Powerful • Low cost • Easy to use 



^. " ... . 



£tt%»«» 



IMSAJ 8080 



j£BJigsf«*£ 



With 22 Slot 
Mother Board 

$649.95 

PCS-80/15 Kit 

699.00 




HAZELTINE1500 
VIDEO TERMINAL 

• Reverse video 

• 24x80 display 

• Programmable 
brightness level 

• RS232 and 
current loop 
and much more 



Assembled 




$1149.00 



FLOPPY DISK 
SYSTEM 



• Fully IBM 3740 media 
and format compatible 

• Full formatter 
and controller 
built-in A 

$2475.00 



Digital Systems 
Dual Drive System 




Dual Density 
Version 



2745.00 



HAZELTINE MODULAR 1 
INTELLIGENT TERMINAL 

• 1920 character display 

• 8 different video levels 

• Full editing capability 

• Removable keyboard 
and much more 



Assembled .... 

$1659.00 



We carry a full line of the following: TDL, 
Centronics, Seals, Hazeltine, Micropolis, Vista, 
Hayden, IMSAI, Cromemco, Digital Systems, 
Compucolor, Icom, Lear Siegler, Okidata, 
DEC, Javelin, North Star, Peripheral Vision. 
Same day delivery and shipping on most 
items. Full modern repair facilities on 
premises for complete servicing of 
everything we sell. 





SPECIAL BUYS 

Vista V80 Floppy Disk System $619.95 

Cromemco Z-2 Kit 565.25 

Compucolor 8001 ColorComputer 2595.00 

IMS 16KStatic Memory 525.00 

North Star Microfloppy Disk Kit 599.00 

North Star Horizon 1 Kit 1499.00 

North Star Horizon 2 Kit 1899.00 

Javelin 9" Video Monitor 159.95 

Livermore Modem Model 76 299.00 

Micropolis Model 1053MOD 2 1799.00 

IMSAI AP44-44 Col. Printer Kit 299.00 

TDL Xitan Alpha 1 Assembled 939.95 



SYNCHRO-SOUND enterprises, inc 

The Computer People 

193-25 Jamaica Avenue, 

Jamaica, New York 11423 

212/468-7067 TWX: 710-582-5886 

Hours 9-4 daily Visit our new showroom 

and Saturday Working units on display 

Depi. bbb BankAmericard* Master Charge 



Circle 356 on inquiry card. 



BYTE August 1978 45 




The LFD-400 is ready to plug in and run 

the moment you receive it. 

Nothing else to buy! Not even extra memory! 

YOU GET: 

O The popular Shugart SA400 minifloppy™ drive. Drive alignment 

is double checked by PerCom before shipment. 
© The drive power supply — fully assembled and tested. 
LFD-400 Controller/Interface— plugs into the SS-50 bus • 

accommodates three 2708 EPROMs • fully assembled and tested. 
O MINIDOS™ — the remarkable LFD-400 disk operating system on 

a 2708 EPROM • plugs into the LFD-400 Controller card • no 

extra memory required • no "booting" needed. 
© Attractive metal enclosure. 

O Interconnecting cable — fully assembled and tested. 
O Two diskettes — one blank, the other containing numerous 

software routines including patches for SWTP 8K BASIC and the 

TSC Editor/Assembler. 
O 70-page instruction manual — includes operating instructions, 

schematics, service procedures, and the complete listing of 

MINIDOS™. 
© Technical Memo updates — helpful hints which supplement the 

manual instructions. 
(8) 90-day limited warranty. 

Minifloppy is a trademark of Shugart Associates. 
MINIDOS is a trademark of PERCOM Data Company. Inc. 

The LFD-400 is readily expanded to either two or three drives. 
Write for details. Send for our free brochure for more informa- 
tion about the LFD-400 Floppy Disk System and LFD-400 
software. 

To save you money, the LFD-400 Floppy Disk System is available 
only from PerCom. Because of the special pricing, group and 
dealer discounts are not available. 

MC and VISA welcome. COD orders require 30% deposit plus 5% handling charge. Allow three 
extra weeks if payment is by personal check. The LFD-400 Floppy Disk System is available 
immediately. Allow three weeks for testing and transportation. Texas residents add 5% 
sales tax. 



PEFCOM 



PERCOM DATA COMPANY, INC. 

Dept B 318 BARNES 'GARLAND, TX. 75042 
(214) 272-3421 

PERCOM™ 'peripherals for personal computing' 



Languages 
Fopum 



A Homebrew 
Pascal Compiler 



Herbert Stein 
Sterzingerstrasse 18 
8200 Rosenheim 
Germany 

Using Pascal as a language for systems 
programming at Fachhochschule Miinchen, 
my interest in Pascal grew to the point where 
I decided to write a compiler for myself. Be- 
gun last October, the syntax analysis stage, 
which was built up with recursive procedures, 
was written in two weeks. During the next 
few weeks I tested the program on a Cyber 
175, having troubles with the original imple- 
mented Pascal compiler at first. On the 15th 
of November I received the first error free 
listing, but had to stop testing possible errors 
because some lectures and a computer graph- 
ics program had higher priorities. In the 
meantime, I worked out some of the next 
steps in theory. 

During further expansion (which means 
space allocation, code generation and file 
handling), there are some potential difficul- 
ties: 

• The MicroPascal compiler has to pro- 
duce an optimized code, which allows 
real time applications and systems pro- 
grams written in a high level language. 

• The compiler needs features like gar- 
bage collection and dynamic space al- 
location for recursive subroutines or 
variable type declarations to keep the 
amount of runtime storage as small as 
possible. 

• No existing monitor is able to run a 
language like Pascal efficiently. (The 
TDL system monitor board presented 
in the April 1978 BYTE seems to be 
headed in this direction.) So I will have 
to write a new operating system or 
transform an existing one to allow su- 
pervisor calls, IO interrupts, process 
handling and hardware interfaces for 
Teletype, video display and mathe- 
matical functions. 



46 August 1978 © BYTE Publications tnc 



Circle 301 on inquiry card. 



• The processor, which has to run the 
produced object code, should have bit 
instructions (like the Z-80), for han- 
dling set types. The Cyber 175 uses a 
60 bit word for set types, which per- 
mits up to 59 elements in Boolean sets. 
The 8 bit words of microprocessors, 
which allow sets of up to eight ele- 
ments, aren't sufficient for a compiler 
implementation. (I have had troubles 
during testing of the program on the 
Cyber 175 because I used a set type 
with 60 elements. I took a long time 
to discover my mistake after counting 
the set elements.) 

• Should the compiler writer allow a 
GOTO in a language or not? If so, the 
user is able to leave a number of pro- 
gram blocks without being concerned 
about missing management routines, 
which are activated automatically at 
normal block ends. 

If the GOTO isn't allowed, the pro- 
grammer has to write structured pro- 
grams, using special instructions like 
repeat . . . until or while . , .do, and 
couldn't leave begin . . . end blocks 
arbitrarily. Each block is closed with- 
out additional program management 
for controlling unpredictable (at com- 
pile time) GOTO statements in object 
code. 

• The last problem is that I don't own a 
microprocessor system, but intend to 
buy a small Z-80 system this month or 
next. Being familiar with instruction 
sets and operating systems of large ma- 
chines, like Interdata, or larger ones, 
like the IBM 370, I have little experi- 
ence with microprocessor systems. 
Some time will pass until I can build 
up and expand the microprocessor to 
be able to run cross-compiled Z-80 
object code. 

Working as a cross-compiler on the Cyber 
175, my compiler will translate itself to a 
loadable form for a microprocessor system. 
If possible, I want to design another syntax 
analyzing stage. The compiler would pick up 
routines and expected sequence symbols 
from a table, which would contain the syn- 
tax description, depending on scanned input 
symbols. This technique would make error 
recovery much easier, because set types for 
sequence symbols would no longer be 
needed. 

I hope to find people like Stephen P 
Smith, who are interested in an implementa- 
tion of a Pascal compiler for microprocessors 
and who will inform each other personally 
or through BYTE's Languages Forum, be- 
cause it seems impossible for individuals to 
tackle such a project." 



Pi 



i^Xfi^fW 



ptionai 
satilityandcon 
) your S-100 bus 
:em with the 




./!.. 



J K/UCU UJ 



■v 






mm 

XB1 Extender Board 
Board Only S9.00 
With Connector $13.50 




• 9 m • 

• • • • 



;:::::::: 



MT1 15 slot Mother Board 
Board Only $45.00 
With Connectors $105.00 





MB4 4K Static RAM (low power) 
Kit $129.95 



VB1B Video Board 
Kit $149.95 





MB6A 8K Static RAM (low power) SB1 Synthesizer Kit 

Kit $165.00 Kit $149.95 



finm BnmnlfnmmnmmnniinMnif 




MBS 2K/4K EPROM (1702A) 
Kit less PROM's S65.00 
2K— $1 05.00/4K— $145.00 




t/02 Interface Board 
Kit $55.00 



MB7 16K Static RAM (low power) 
Kit $449.00 



We're the blue boards! 



Compare the Cybercom blue boards with any others on the market 
today. You'll find exceptional quality plus prompt delivery and 
significant cost savings. All Cybercom kits are guaranteed 90 days 
for parts and labor. 

Contact your local computer hobbyist store or write for details. 






::: Solid State Music 

2116 Walsh Avenue, Santa Clara, CA 95050 
Telephone (408) 246-2707 
Circle 335 on inquiry card. 



August 1978 © BYTE Publications Inc 47 



We're looking 

for an 
endangered 

species. 



We're looking for the 
rare bird who doesn't have his 
or her head in the sand. 
We're looking for a few free 
spirits to help us build Sol 
small computer systems in one 
of America's loveliest areas, 
the Amador Valley, about 30 
minutes southeast of 
San Francisco. 

Only three years old, 
Processor Technology Corpor- 
ation is a pioneer in the 
microcomputer business. We 
build the best small 
computer systems there are 
and will continue to do so. 
Our plan calls for new and 
even better systems. 

We need a few really 
good people to help us meet 
the plan. We're building 
a tight-knit group of original 
thinkers who can help us 
develop new hardware and soft- 
ware and bring these products 
to market. Our thinkers better 
be doers, too. Our doers have 
complete project responsibility 
from definition to pilot 
production. 

We have, of course, most 
of the usual benefits. We're 
working on the unusual. Even 
more important than the 
benefits is the opportunity for 



you to be you and to see the 
tangible results of your efforts. 

The future of computing 
is personal computing, and we 
hope it's your future, too. 

Right now we have 
openings for: 

Engineers for 
Design, Project 
Leadership, and 
Product Test 

Technicians for 
R&D, Marketing 
Support, and 
Production 

Senior Technical 
Writer/Editor 

For immediate and 
confidential consideration, 
stop by, phone or send 
your resume to our Personnel 
Department. We interview 
and receive calls between 1 and 
5 PM daily. 



PnocessorTechnology 

Processor Technology Corporation 

7100 Johnson Industrial Drive 

Pleasanton, CA 94566. (415) 829-2600. 



Glubs end 
Newsletters 



Conducted by Laura Hanson 



The Alliance OH Microcomputer Club 

The Alliance Microcomputer Club is 
a recently formed organization located 
in Alliance OH. According to Gary S 
Fix, president, the group's goals are 
"to provide individuals in the Alliance 
area with the opportunity to share 
interests and experiences in exploring 
microcomputers as a hobby, career, 
social activity or curiosity." Meetings 
are held on the first Tuesday of each 
month at 7 PM. For further information 
about this new club, contact Gary at 
3885 Norwood Av, Alliance OH 44601, 
or call him at (216) 823-8996. 

SC/MP and SC/MP-II Users Group 

Tom Bohon of Omaha NB has in- 
formed us of a SC/MP and SC/MP-II 
Users Group which has been formed. 
Members may take advantage of a 
library of both software and hardware 
information available on a cost basis. 
In addition, a bibliography of SC/MP 
articles, advertising, programming hints, 
etc, is available to members for the 
reproduction cost. The construction 
of a homebrew system based on the 
SC/MP-II is also in the planning. 

No dues or fees are involved. How- 
ever, in order to receive the monthly 
newsletter, send a self-addressed stamped 
envelope to Tom Bohon, 2215-A Walker 
Dr, Omaha NB 68123. 

North Orange County Computer Club 

According to Gary S Dickinson, the 
North Orange Computer Club is alive 
and well in Southern California. The 
correct mailing address is POB 3603, 
Orange CA 92655 and the phone num- 
ber is (714) 998-8080. 

KIM-1 Users Group 

Anyone inerested in forming a KIM-1 
Users Group in the San Fernando Valley 
area of California should write Jim 
Zuber, 20224 Cohasset #16, Canoga 
ParkCA 91306, or call (213) 341-1610. 

COSMAC-1802 Users Group 

We have been notified by Patrick 
Kelly that a COSMAC-1 802 Users Group 
is being formed for the purpose of 
corresponding, exchanging software and 
ideas and possibly publishing a news- 
letter. Membership is free and individuals 

Continued on page 142 



48 August 1978©BYTE Publications Inc 



Circle 305 on inquiry card. 




Photo courtesy of ComputerLand of San Francisco 



Computerland, the DP Department Store. 
Hazel tine & Diablo en Display. 



Time was, buying hardware meant dealing factory 
direct. Then came the distributor, or factory indirect. The 
phone/mail order ad reads, "15% off." 15% off what? Delivery 
schedule maybe. After sales service perhaps. The only real 
savings just might be the Toll Free number in the ad. 

Now there's an alternative. Introducing ComputerLand, a 
national network of DP equipment stores, with outlets across 
the nation. This means you, and the DP director, programmer, 
general manager or purchasing agent can take a quick ride 
across town, try out working equipment in a user environment, 
make product comparisons, then drive off with the hardware of 
your choice. And, still be back in time for the afternoon coffee 
break. 

Below is a sampling of the quality business information 
products, from more than 60 manufacturers of micro and mini- 
computer systems and peripherals, available for you to try out, 
buy or lease and take home today from ComputerLand. 



ComputerLand 

14400 Catalma Street, San Leandro, CA 94577 (415) 895-9363 

Franchise opportunities available. 




HAZELTINE 1500 

D 24 X 80 Display (upper/lower 
case) D High legibility 7X10 dot 
matrix □ Teletypewriter format for 
alphanumerics plus numeric pad D Switch-selectable upper/ 
lower case DRS -232/C 20 ma. current loop interface 

□ Switch-reversible video. 



DIABLO 1620-3 

□ HyType daisy wheel character printer 
a Full keyboard with numeric pad 
D Microprocessor controlled DRS -232/C interface 
□ 45 CPS D Tractor feed □ Internal power supply. 

©Copyright ComputerLand 1978 




CALIFORNIA 



117 Fremont Sire 



COLORADO 



CONNECTICUT 



3 203 374-2327 



DELAWARE 



ILLINOIS 

50 Easi Rand Road 

Arlington Height! 312-255-6488 

9511 No Milwaukee Avenue 
Nile* 312-967-1714 

10935 S Cicero Awnue 



MARYLAND 



MICHIGAN 
2927 -28th 



rJGIG-942-2931 



Nashua 603-889-5238 

NEW JERSEY 

1442 E. Route 70 
Cherry HIM 609-795-5900 



NEW YORK 



OREGON 

12020 S. W. Main Stre« 
Tijjard 603-620-61 70 

TEXAS 



Circle 75 on inquiry card. "SEE US AT PERSONAL COMPUTING '78 IN PHILADELPHIA, AUGUST 24-27" 



WASHINGTON 



1500 South 336lhSlreel 
Parkway Center, Suite 12 
Federal Way 206-838-9363 



INTERNATIONAL 

52-58 Clarence Street 
Sydney NSW 2000 
Australia TLX: AA 24757 



BYTE August 1978 49 



Compilation and Pascal 
on the New Microprocessors 



Charles H Forsyth and Randall J Howard 
Computer Communications Networks Group 
University of Waterloo 
Waterloo, Ontario 
CANADA N2L 3G1 



We arc concerned with the use of high 
level languages, and in particular Pascal, on 
microcomputer systems. We arc most 
interested in the use of such languages for 
what is termed, on larger computer systems, 
systems programming. This includes writing 
code to drive floppy disks, interpreters for 
APL or BASIC, or all those bits of code that 
people have until now written in assembler, 
and which in some way make their micro- 
computer systems friendly. 

Microcomputer users show a generally 
high level of sophistication, so it might be 
surprising at first that so much of their code 
is still written in assembler. The advantages 
of writing in a high level language have been 
often described in computing literature: 
programs can be made more portable; they 
exhibit better structure; and they arc easier 
to write and debug. In addition, it is much 
easier to let a compiler worry about the 
efficiency of the object code; and deficien- 
cies of the object machine arc hidden. With 
the 8 bit microcomputers like the Intel 8080 
and Motorola 6800, we feel that there is 
little choice but to write in assembler (or 
interpreter), since the facilities provided by 
their order codes arc simply insufficient to 
support most high level languages. 

Compilation may be inappropriate for 
8 bit microcomputers, but it is the most 
attractive alternative for the hybrid 8 and 
I 6 bit microcomputers (such as the Motorola 
6809), especially with respect to eliminating 
most assembly code on these machines. We 
also feel that Pascal has facilities that enable 
a compiler to generate better code for such 
machines than might be expected from 
compilers for other languages. 

Jensen and Wirth provide the definition 



of and tutorial introduction to Pascal in the 
Pascal User Manual and Report. Aho and 
Ullman's book, Principles of Compiler 
Construction, provides an excellent descrip- 
tion of the elements of a compiler. 

Options 

Tiny BASIC, Tiny C, APL, and FOCAL 
are implemented on microcomputers with 
interpretive code. Interpretation has a num- 
ber of advantages. Since the interpretive 
language is highly specialized, it can be made 
compact. New macro operations can be 
added easily as time and experience dictate. 
Array and structure addressing and the block 
copying associated with array and structure 
assignment may be made particularly cheap. 
When interpreting array indexing, run time 
checks of the index values against the array 
bounds are possible (although often left out) 
at little extra cost. This is true of other kinds 
of debugging facilities as well, such as value 
traces or stack tracebacks. Both compiler 
and interpreter arc easy to write, especially 
if the interpreted code implements a stack 
machine. Interpretation's main disadvantage 
is that it is slow. 

An alternative to interpretation that 
alleviates this latter problem of speed some- 
what is threaded code, which has been 
described as "interpretive code which needs 
no interpreter" (see references 2 and 3). 
Rather than having a sequence of codes and 
an interpreter which reads them, calling out 
to the routines implementing each operation, 
threaded code simply contains the sequence 
of machine addresses of the routines to proc- 
ess each operation. These routines, much 
like the code segments called by the inter- 



50 August 1978 © BYTE Publications Inc 



TARBELL SETS STANDARDS 

For Hobbyists and Systems Developers 

Sales to thousands of hobbyists over the past two years have proven the Tarbell Cassette 
Interface to be a microcomputer industry standard. Tarbell Electronics continues research and 
development to produce new and efficient components to fill hobbyists' changing needs. 

TARBELL 
CASSETTE INTERFACE 

1 Plugs directly into your IMSAI or ALT AIR * 
1 Fastest transfer rate: 187 (standard) to 540 bytes/second 
1 Extremely Reliable — Phase encoded (self-clocking) 
4 Extra Status Lines, 4 Extra Control Lines 
37-page manual included 
Device Code Selectable by DIP-switch 
Capable of Generating Kansas City tapes also 
No modification required on audio cassette recorder 
Complete kit $120, Assembled $175, Manual $4 
• Full 6 month warranty on kit and assembled units 

TARBELL FLOPPY DISC 
INTERFACE 

• Plugs directly into your IMSAI or 
ALTAIR* and handles up to 4 
standard single drives in daisy- 
chain. 

• Operates at standard 250K bits 
per second on normal disc format 
capacity of 256K bytes. 

• Works with modified CP/M* 
Operating System and BASIC-E 
Compiler. 

• Hardware includes 4 extra IC 
slots, built-in phantom bootstrap 
and on-board crystal clock. Uses 
WD 1771 LSI Chip. 

• Full 6-month warranty and exten- 
sive documentation. 

• PRICE: 
Kit $190 Assembled $265 





mm 



mi aio a 5! ! 
, uiuiliiaii; 




CP/M with BASIC E Compatible Disc Drives 

and manuals: $100 Ask about our disc drives priced as low as $525. 



TARBELL 

PROTOTYPE 

BOARD 

Model 1010 




lllllllllll I 



Gold plated edge pins 

Takes 33 14-pin ICs or 

Mix 40-pin, 18-pin, 16-pin and 

14-pin ICs 

Location for 5 volt regulator 

Suitable for solder and wire wrap 

ALTAIR/IMSAI compatible 

Price: $28.00 



For fast, off the shelf delivery, all Tarbell Electronics products may be purchased from computer store dealers 
across the country. Or write Tarbell Electronics direct for complete information. 

'ALTAIR is a trademark/tradename of MITS, Inc. 
CP/M is a trademark/tradename of Digital Research 



20620 South Leopwood Avenue, Suite P 
Carson, California 90746 

(213) 538-4251 




Circle 360 on inquiry card. 



BYTE August 1978 51 



type 



begin 



end 



The listings in this 
article were prepared by 
arrangement with Walter 
Banks of the University of 
Waterloo. 



Index = 0..I0; 
twicelndex = 0.20; 
unsigned = 0. .32767; 
short = -128. .127; 

short Unsigned = 0..255; 
thing = record 

field 1:0.. 7; 
field 2: 0..31 
end; 
packedThing = packed record 
field 1:0.. 7; 
field2: 0.31; 
end; 

a. b: array [index] of integer; 
i. j: index; 
k: twicelndex; 



s: set of (READY. BLOCKED. RUNNING. SWAP1N. SWAPOUT); 

a/i/ := bfj/; |the dreaded array-indexing example] 

k := i+j; |subranges are useful) 

s := /READY. BLOCKED. RUNNING/;\sel operations) 
S := S - /READY. RUNNING/; 



s := s + /SWA PIN j: 

s:~ s* /SWAPIN. BLOCKED/; 



Listing I : Pascal program fragment for array indexing. 



/Enable indexing off sp 
/Fetch address of j relative., 
/to sp into (A,B) register pair 
/Shift (AB) pair left by 1.. 
/yielding integer offset 
/Add in 16-bit array 
/pointer i to (A,B) pair 
/Transfer (A,B) pair to X reg. 
/..not re-entrant 

/Finally, fetch b[j] into.. 

/(A,B) pair.. 

/and push onto stack 

/Following code is repeat of.. 
/above for getting address of., 
/array element a[i] 



tsx 




Ida 


A,;(X) 


Ida 


B,y+/(X) 


asl 


B 


rol 


A 


add 


B, b+l(X) 


adc 


A, b(X) 


sta 


A, temp 


sta 


B, temp+1 


Idx 


temp 


Ida 


A, 0(X) 


Ida 


B, l(X) 


psh 


A 


psh 


B 


tsx 




Ida 


A, i(X) 


Ida 


B, i + /(X) 


asl 


B 


rol 


A 


add 


B, o+/(X) 


adc 


A, a(X) 


sta 


A, temp 


sta 


B, temp+1 


Idx 


temp 


pul 


B 


pul 


A 


sta 


A, 0(X) 


sta 


B, 1(X) 



/X now points at a[i] 
/Pop b[j] from stack., 
/into (A,B) pair., 
/and store in a[i] 



Total code: 52 bytes 



Listing 2: Motorola 6800 assembly code for the first 
line of the Pascal fragment shown in listing 1. 



prcter to implement the pseudo-machine, 
provide the run time support for the threaded 
code. Rather than return to an interpreter 
after it has done its work, though, a routine 
simply jumps (indirectly) to the next such 
routine in the code flow. Arguments are 
passed to these routines in various ways - 
for example, by placing values or addresses 
between the code pointers. 

The third approach to language imple- 
mentation is that traditionally adopted on 
larger machines: real code generation. This 
approach provides the fastest program 
execution at the possible expense of space 
used by the object code. On almost any 
machine, the high level constructs of flow of 
control and logical expressions as well as 
calls to the intrinsic built-in functions can be 
directly implemented as branch or jump 
instructions with relatively little expenditure 
of speed or time. However, for many of the 
existing microcomputers, code generation 
for even the simplest of the fundamental 
high level language constructs proves effec- 
tively impossible. Such constructs include 
most common arithmetic operations, array 
and structure accessing, and automatic 
storage manipulation. Particularly difficult 
on some machines are multiply, divide, 
modulus and string operations. Therefore it 
is important to determine what properties of 
a particular machine make it suitable for real 
code generation. 

8 Bit Microcomputers 

A detailed study of the common 8 bit 
computers available today (eg: Motorola 
6800, Intel 8080) quickly reveals that such 
machines are not conducive to real code 
generation by compilers for high level 
languages such as Pascal. 

On such machines, compilations of even 
the simplest arithmetic or pointer expressions 
lead to a very high object to source code 
ratio, if such constructs can be compiled at 
all. Listing 2 gives an example of code which 
might be compiled for a Motorola 6800 to 
implement the Pascal assignment statement: 
a[l] :=b[j] ; in listing 1 . The assumption here 
is that automatic arrays are implemented as 
pointers on the stack to areas of storage 
residing elsewhere. In addition, we have 
assumed that the compiler keeps track of the 
stack offsets for its automatic variables 
relative to the moving stack pointer; we are 
using the notation / to represent the stack 
offset of variable j. In addition to this code 
segment, the procedure preamble must set 
up the pointers to the arrays a and b (stored 
at offsets a and b respectively), to point at 
the integer before the beginning of the array. 
Thus, for example, a[l j will then be identi- 



52 August 1978 ©BYTE Publications Inc 




The Most Powerful 
Interface Ever 



Now for the first time all of these capabilities are avail- 
able on one board; the System Central Interface (SCI). 

— 2708 programmer and verifier; monitor provides 
necessary routines 

— RAM stack: 256 bytes for stack and buffer 

— Serial port: RS-232, 20mA, 60mA, programmable 
speeds from 45 to 9600 baud 

— Three parallel ports, each with handshake signals 

— Reset-jump (enables CPU to jump to the SCI 
Monitor) 

— Biphase recording for highest speed, least error 
rate (to over 1 00,000 baud) 

— Digital comparator — no adjustments ever 

— S-100 compatable 

© 1978TELETEK 



Teletek provides quality interface systems backed by a 
reputation established over the last decade. Complete 
engineering support services are available for OEM 
applications. 

For more information call Ann Roberts at (916) 351- 
0535 or write us and we will send complete informa- 
tion. 

DEALER INQUIRIES INVITED 
OEM CONTRACTS AVAILABLE 



TELETEK ENTERPRISES INC. 



11505B Douglas Road 
Rancho Cordova, CA 95670 



Circle 371 on inquiry card. 



BYTE August 1978 53 



Let 

r -.= | X, Y, S, U | 
a := | A, B, D | 
x := memory reference 
c := constant value 

x long relative, short relative, direct 

*x long & short relative indirect 

$x immediate byte 

*$x extended 

**$x extended indirect 

c(r) ±4, ±7, ±15 bit indexing 

*clr) ±7 and ±15 bit indirect indexing 

(rl+ Auto Increment by 1 or 2 

-Irl Auto Decrement by 1 or 2 

*(r)+ Indirect Auto Increment by 2 

*-lr) Indirect Auto Decrement by 2 

a{r) Accumulator Indexing 

*alrl Indirect Accumulator Indexing 

Table I: A summary of the Motorola 
MC6809 addressing modes. 



fiecl with the beginning of the storage 
associated with the array a. 

Beyond the actual code shown here, 
however, the most important insight to be 
gained from all of this is the sheer bulk of 
code that such a simple construct would 
generate (and it is not even reentrant at that). 
Imagine how large the object code size 
would be for even a reasonably short Pascal 
program. 

Implementing threaded code is somewhat 
difficult on these machines because they 
require 16 bit memory pointers, an efficient 
mechanism for indirect addressing, and some 
method of incrementing such a pointer to 
the next 16 bit pointer. At least one of the 
above criteria is so troublesome on both the 
Motorola 6800 and the Intel 8080 that the 
threaded code becomes unwieldy. Thus, for 
these machines one has little choice but to 
interpret or write in assembler. This suggests 
that the interpreters themselves must be 
implemented in assembly language. 

The above discussion is an attempt to 
analyze the reasons why programs written 
for 8 bit microcomputers have traditionally 
been interpreted or written in assembly or 
machine code, rather than being compiled 
into "true" code from a high level language. 

16 Bit Microcomputers 

Previously, the only alternative to the 
8 bit architecture was that of the 16 bit 
microcomputer. Examples of such machines 
include the TI-990/4 and the DEC LSI-11. 
While the considerable costs of these proc- 
essors tend to make them impractical for 
many computer experimenters, and for 
those applications in which many processors 



arc required, it is instructive to consider 
what properties set these machines apart 
from their 8 bit counterparts with respect to 
code generation. In fact, it can be shown 
that, given a machine of sufficient sophisti- 
cation, it should be possible for a compiler 
to do as good a job as an assembler program- 
mer vis-a-vis machine resource utilization. 

There are two main virtues of these 1 6 bit 
machines. In the first place, these machines 
have complete 16 bit instruction repertoires 
including hardware multiplication, division, 
and long shifts. As well, the 1 6 bit processors 
tend to have a good complement of addres- 
sing modes such as indexing, stack opera- 
tions, automatic increment and decrement 
of pointers, and so on. (Here, as elsewhere in 
this article, the descriptive terms may seem 
fuzzy. Good complement does not admit of 
a precise meaning. With real machines, one 
usually loses clever addressing modes, for 
plenty of general purpose registers, and one 
must balance the benefits somehow. The 
final judgment will usually be that of the 
person writing the compiler.) With these 
attributes, it is a fairly straightforward task 
to construct a compiler for a high level 
language such as Pascal. 

8 and 16 Bit Hybrids 

The current trend in 8 bit microprocessor 
technology is towards a hybrid combination 
8 and 16 bit machine. Essentially, these 
processors are capable of 16 bit operations 
while retaining 8 bit data paths throughout 
the processor architecture. A prime example 
of such a hybrid is the Motorola 6809, 
which is due for formal product release later 
this year. Table 1 gives a summary of the 
basic addressing capabilities of the Motorola 
6809, expressed in a hypothetical assembler 
syntax which removes from the user the 
burden of understanding all of the details of 
the actual hardware addressing modes. 

What advantages do these machines have 
over their pure 8 bit predecessors? In partic- 
ular, these machines now have at least one 
accumulator for performing addition, sub- 
traction, shifting and comparison operations 
on 16 bit data. A second feature of these 
machines is the 16 bit memory pointer, 
which, combined with the ability to auto- 
matically increment and decrement such 
pointers, provides a very general memory 
accessing capability. In addition, common 
high level language features such as slack 
frames and display pointers become quite 
easy with the general index and slack 
registers of the M6809. It is apparent that 
the Motorola 6809 is particularly well- 
endowed with addressing modes which 
tend to facilitate code generation for high 
level languages. 



54 August 1978 © BYTE Publications Inc 



Home-Computer Retailers 
Get a new Sales Tool With 



READY-TO-USE PRS 
PROGRAMS ENCOURAGE 
HOME-COMPUTER 
SALES. 

Enable retailers to offer home- 
computer buyers an easy road to 
computer usage. An answer to 
the doubters who question 
the use of a computer in the 
home. These are thorough and exciting 
applications. The elimination of the old 
"tic-tac-toe" program. 

NEW STANDARD OF 
EXCELLENCE IN 
DOCUMENTATION 
SIMPLIFIES RETAILER'S 
AND USER'S LIFE. 
Retailers, you can now realize your dream 
.to put a computer in every household. 
Each program of PRS Corporation comes 
with complete written documentation in 
clear and easy-to-understand English. And 
avoids esoteric technical language. Indeed, 
retailers, you can now offer homeowners a 
fluency at their fingertips without their 
having a Ph.D. in Computer Sciences. 

DISPLAY RACK 
SPARKS COMPUTER 
SALES. 

Enables home-computer buyers to browse 
through beautifully packaged cassette- 
folders. Each prospect can study various 
types of programs and become interested 
in the advantages of computers. 




Software 




EXTENSIVE PROGRAM 
CAPABILITIES MAKE 
COMPUTERS DESIRABLE. 

With "microti le," a new and revolutionary 
datafile management program, users can: 

• Manage any list of items 

• Enter new data 

• Edit information already on file 

• Order items alphanumerically upwards 
and downwards 

• Sort by primary and secondary keys 

• Search out an individual item or print 
out entire list 

• Total sums of columns 

• Justify right and left margins of each 
column 

• Delete items 

• Save and retrieve data with mass storage 
media 

PROGRAM APPLICATIONS 
EXPAND COMPUTER USAGE: 

Gives retailers opportunities to tell home- 
computer prospects about the unending 
list of home and personal usages. For ex- 
ample, microfile manages: 



Home inventory of furnishings • 
Listing of musical tapes • Calen- 
dar of activities • Vacation itiner- 
aries • Checks by categories • 
Home-upkeep tickler file • Family 
historical dates • Health records 

3 LEVELS OF 
PROGRAM-USAGE. 

Educational and games; homeowner 
and business applications; sophisticated 
monitors and programming tools. 

PROGRAMS AVAILABLE 
FOR THE MAJOR COMPUTER 
BRANDS: 

1. SOL from Processor Technology Corp. 
and all computers with Solos/Cuter 
monitor 

2. TRS-80 from Radio Shack 

3. The Apple II from Apple Computer Inc. 

4. The Pet Computer from Commodore 

5. The Sorcerer from Exidy Inc. 

6. Standard set adaptable to other sys- 
tems with Z-80, 8080A, 6502 micro- 
processors 

EXCLUSIVE SALES 
TO RETAILER, 

PRS Corporation offers only retailers the 
sales opportunity for PRS software. With 
no direct sales to end users. Each retailer is 
provided with a beautiful informative rack 
capable of holding up to 20 cassette -fold- 
ers. Microfile (a Level 2 program) and 
DDS II (a Level 3 program) the famous 
Dynamic Debugging System— are now 
available with additional programs coming 
on a regular schedule. 



CALL NOW FOR YOUR SPECIAL TRIAL DISCOUNT OFFER: 

Call immediately (212) 787-1526 or 787-1527; or write today for details to: PRS- 
THE PROGRAM OF THE MONTH Corporation, 257 Central Park West, New 
York, N.Y. 10024. 



Circle 306 on inquiry card. 



BYTE August 1978 



55 



Listing 3: Motorola 
MC6809 assembly code 
for array Indexing program 
fragment. 



Consider again the array assignment 
which the 6800 handled so dismally. The 
Motorola 6809 code for the same construct 
is given in listing 3. (Note that the syntax of 
our assembler code is intended to be more or 
less consistent amongst the examples, and 
not necessarily that of the manufacturer's 
assembler. It is in fact the syntax used by 
our UNIX assemblers for these machines.) 
Code for the PDP-11/45, considered to be a 
good instruction set given in listing 4, is 
included for comparison. 

It is rather precipitous to deduce much 
from this one example, although array 
indexing does exercise many of the addressing 
modes of a machine, and such assignment 
statements can provide a check on the 
register usage of a compiler. How a partic- 
ular architecture fares with more general 
arithmetic expressions and function and 
procedure call, save, and return sequences 
would provide further basis of comparison. 
Indeed, other examples that we have tried 
suggest that the results of this comparison 
are typical. 

Special Advantages of Pascal 

We feel that the use of Pascal and a 
competent compiler can lead to better 
code in many cases on hybrid 8 and 16 bit 
machines than can be achieved with many 
other languages. Obviously, the best results 
will require that Pascal be properly used — 
that subranges be used where possible, for 
example — and that these be declared to be 



/•X' 


points to top ol 


' stack (display) 


Ida 


D. i(X) 


/i 


asl 


B 




rol 


A 


1*2 


add 


D, %a-2 


1 -t-ofTset of 'a 


lea 


Y. D(X) 


/ -tstack top 


Ida 


D.7(X) 


/J 


asl 


B 




rol 


A 


/•2 


add 


D. %b-2 


/ +offset of 'b 


Ida 


D. D(X) 


/ +stack top 


sta 


D, (Y) 


Mi]:=b[j] 



Total code: 20 bytes 



/ r5 points to the "top" of the 



Listing 4: DEC PDP-11 
assembly code for array 
indexing example. 



1 stack frame 






mov /(r5),rO 




/J 


asl rO 




/*2 


add r5,r0 




/+ display pointer 


mov i'(r5).rl 




/i 


asl rl 




1*2 


add r5,rl 




/+ display pointer 


mov />-2(r0),a 


-20 


i) /.a[i];< 



Mil; 



Total code: 22 bytes 



as small as possible. A Pascal program can 
contain a great deal of information that 
allows even a straightforward compiler to 
generate code which makes good use of the 
available registers. The Pascal declarations of 
listing 1 provide illustration for the following 
discussion, and the code given is for the 
Motorola 6809. Remember that the intent is 
not to describe an implementation of Pascal. 

The declaration of scalar and subrange 
types essentially allows the declaration of 
small integers and makes known the detailed 
characteristics of variables of such types to 
the compiler. Variables may thus be com- 
pletely bounded, and the compiler can 
compute upper and lower bounds on the 
value of an expression. 

In our example, variables of type short 
or shortUnsigned may be loaded into the 
8 bit accumulators of the 6809, and both 
registers may be used simultaneously. A 
variable may be recognized as unsigned if 
there are no negative values in the subrange 
to which it belongs. In the assignment state- 
ment k := i+j; the variables /, and/, are both 
in the range thru 10. The result is thus in 
the range thru 20, and an 8 bit accumulator 
may again be used to compute this result. 
(All of this is particularly useful if array 
indexing is also involved.) 

The Pascal set type may be regarded as 
providing a readable way to do "bit twid- 
dling." A set is typically implemented as a 
sequence of bits, one for each element of the 
base type of the set. The variable s might 
then be a byte in which the low order bit 
corresponds to the element READY, the 
next to BLOCKED, and so on. The sequence 
of assignments might then be compiled as in 
listing 5. 

Pascal, of course, provides pointers, 
record structures and arrays. 

The use of pointers is strictly controlled: 
arbitrary arithmetic operations on pointers 
are not allowed. About the only things that 
may be done with a pointer variable are: 
indirect addressing, assigning another pointer 
to it, or passing it to a procedure or function. 
This structured use of pointers and indexing 
results in a very stylized use of pointers in 
the compiler's internal representation. This 
in turn allows the compiler to detect the 
places where double indexing may be used 
to advantage rather easily, on machines like 
the 6809 which have this feature. 

Indexing of an array of records does 
require multiplication of the index by the 
width, in bytes, of the record. Often, this 
may be accomplished by a shift. Of course, 
this cannot always be done, since records 
need not be a power of 2 in length, though 
a compiler could arrange to round the size 
of a record up to an appropriate boundary if 



56 August 1978 © BYTE Publications Inc 





Wondering which memory 
is best for you? 



bQ/e 2* offers the following products 
to the S-100 market at the industry's 
lowest prices: 

8K Static Memory Board 

This 8K board is available in two versions. The 8KS-B operates at 450ns for use with 
8080 and 8080A microprocessor systems and Z-80 systemsoperating at 2MHz. The 
8KS-Z operates at 250ns and is suitable for use with Z-80 systems operating at 4M Hz. 
Both kits feature factory fresh 21 02's (low power on 8KS-B) and includes sockets for 
all IC's. Support logic is low power Schottky to minimize power consumption. Address 
and data lines are fully buffered and 4K bank addressing is DIP switch selectable. 
Memory Protect/Unprotect, selectable wait states and battery backup are also 
designed into the board. Circuit boards are solder masked and silk-screened for ease 
of construction. These kits are the best memory value on the market! Available from 
stock . . . 8KS-B $125 (assembled and tested add $25.00) 

8KS-Z $145 (assembled and tested add $25.00) 




16K Static Memory Board 

Base 2 can now offer the same price/performance in a 1 6K static RAM as in its popular 
8K RAM. This kit includes 8K bank addressing with 4K boundary address setting on 
DIP switches. This low power unit provides on-board bank selection for unlimited 
expansion. . . No MUX board required. Using highestquality boards and components 
we expect this kit to be one of the most popular units on the market. Available in two 
speed ranges, the 1 6KS-B operates at 450ns while the 1 6KS-Z operates at 250ns. 
16KS-B $285 (assembled and tested add $25.00) 
16KS-Z $325 (assembled and tested add $25.00) 





Z-80 CPU Board 

Our Z-80 card is also offered in two speed ranges. The CPZ-1 operates at 2MHz and 
the CPZ-2 operates at 4MHz. These cards offer the maximum in versatility at 
unbelievably low cost. A socket is included on the board for a 2708 EPROM which is 
addressable to any 4K boundary above 32K. The power-on jump feature can be 
selected to address any 4K boundary above 32 K or the on-board 2708. An On-board 
run-stop flip-flop andoptional generation of Memory Write allows the board to run with 
or without a front panel. The board can be selected to run in either the 8080 mode, to 
take advantage of existing software, or in the Z-80 mode for maximum efficiency. For 
use in existing systems, a wait state may be added to the M1 cycle, Memory request 
cycle, on-board ROM cycle, input cycle and output cycle. DMA grant tri-states all 
signals from the processor board. All this and more on toD quality PC boards, fully 
socketed with fresh IC's. CPZ-1 $110 CPZ-2 $125 



S-100 for Digital Group Systems 

This kit offers, at long last, the ability to take advantage of S- 1 00 prod ucts within your 
existing DigitalGroup mainframe. Once installed, up to four S-1 00 boards can be used 
in addition to the existing boards in the D.G. system. The system includes an 
"intelligent" mother board, ribbon cables to link existing D.G. CPU to the DGS-100 
board and a power wiring harness. The DGS-1 00 is designed to fit in the 5-3/4" x 1 2" 
empty areain the standard D.G. cabinet. It may seem expensive but there'sa lot here! 
End your frustration! DGS-100 $295 




bo/e 



Circle 19 on inquiry card. 



2 



inc 



Send for more details on these products. Get on our mailing listfor 
information on more soon to be announced products at factory-direct 
prices from BASE 2. Why pay more when you can get the best at 
these prices??? 

P.O. Box 3548 • Fullerton, Calif. 92634 

(714) 992-4344 

CA residents add 6% tax 

MC/BAC accepted • FOB — U.S. destination 

BYTE August 1978 57 



/ X is display pointer 
/ equates are in octal 
READY = 01 
BLOCKED = 02 
RUNNING = 04 
SWAPIN = 010 
SWAPOUT = 020 



Ida 

sta 

/ 
Ida 

anda 
sta 

/ 

Ida 
ora 
sta 

/ 

Ida 
anda 
sta 



A, SREADY+BLOCKED+RUNNING / immediate load 
A, i(X) 

A.i(X) 

A, $![READY + RUNNING] /complement 

A,j(X) 

A, s(X) 

A, SSWAPIN 
A, s(X) 

A, s(X) 

A, $[SWAPIN + BLOCKED] 

A, 5(X) 



Listing 5: Set assignment code tor the Motorola MC6809 processor. 



the difference were small. In any event, 
provided the size of the record is no more 
than eight bits (as an unsigned quantity), the 
code for the multiplication could reasonably 
be included in line. 

We wondered how often division or multi- 
plication is used in the UNIX system (an 
operating system developed at Bell Labs), 
and wrote a simple command file which 
would compile each of the source programs 
of the system and scan the resulting assem- 
bler for mul and div instructions. The 
number of multiplications was of interest in 
light of the above discussion; the number of 
divisions was collected as well, since these 
would have to be interpreted by subroutine 
on the 6809, and we wanted to know how 
many occurred in critical code. The results 
are shown in table 2. 

Only one of the divide instructions occurs 
in a routine that might be regarded as signi- 
ficant, with respect to increasing system 
overhead, were a subroutine called to do the 
divide piecemeal; and that division was 
performed at a low priority level. 31 of the 
divide instructions in the device driver rou- 
tines were in disk drivers, which had to 
compute track and cylinder offsets. The 



Section 


Lines 
of C Code 


Number of 
Multiplications 


Number of 
Divisions 


UNIX Kernel 
Device Drivers 


6,013 
8,640 


4 
62 


9 

41 



Table 2: A search through a particular operating system to determine the 
number of multiplications and divisions used. I his was done to determine 
how important the speed of a multiplication and division routine would be to 
a typical program. 



multiplications in all cases were of small 
amounts; it seems that (most likely by 
accident) record structures used in the 
kernel happened to be a power of 2 in length. 
It would have been more instructive, perhaps, 
to examine user programs, but in that case it 
would have been more difficult to separate 
multiplications written explicitly from those 
created implicitly by array indexing. 

A Pascal programmer may declare partic- 
ular record or array types as packed, which 
is a hint to the compiler that the program- 
mer would prefer elements of the given type 
to occupy as little space as possible even if 
there is a cost in increased code to access 
them. This leaves the unit of packing to the 
compiler. For example, the types thing and 
packedThing (sec listing I) describe packed 
and unpacked records with similar fields (to 
Pascal, these record types are not compatible 
in any way). In a thing, both fieldl and 
fie/c/2 will likely be bytes, but if a compiler 
implements the notion packed completely, 
then in a packedThing, field! will likely 
occupy three bits, and field 2 five bits, ie: 
they would share the same byte of storage. 
Packing of records on microcomputers is 
often much easier than on the larger proc- 
essors, because microprocessors do not have 
the alignment problems that plague compiler 
writers on those machines. 

Finally, as in many other languages, the 
order of evaluation of expressions is left to 
the implementor, but since side effects arc 
not allowed, no legal Pascal program can 
possibly be harmed by this. This has two 
related effects; in arithmetic expressions, 
the compiler may evaluate the operands in 
the order that leads to the least amount of 
code, and in Boolean expressions the left- 
hand side of the logical operators and and or 
need not be evaluated if the expressions on 
the right determines the truth value of the 
entire expression. Faster or smaller code will 
usually result if a compiler takes advantage 
of these properties. 

Pascal: Problems? 

We feel that there are a number of areas 
where Pascal is likely to require expensive 
mechanisms, and which would be inappro- 
priate for a systems programming environ- 
ment. One solution might be to implement 
a subset of the language, leaving these hard 
features aside, but in most cases, since the 
expensive mechanisms are only invoked if 
the programmer asks for them, it should 
be sufficient to have the compiler avoid 
including the associated run time procedures 
when they are not requested. (This is worth 
mentioning, if only because this rule is often 
not followed.) We shall first mention those 



58 



August 1978COBYTE Publications Inc 



' ; 






18 >« 




^A/ A 



ST ^/fi 



For Homeow 



We have been in busin 

for providing a quality prod 

traffic will bear. Our softwa 



• Versatile — as i 

operation. 

• Tutorial — as each program is serf, pi 
through the program (most' l naye r ^e 



COMPUTER 

Businessmen, Engineers, Hobbyists, Doctors, Lawyers, Men and Women 



*L, 




is you 



8afc(s 

suuctions 

V 

as an example our PSD program not only 



uced full size for 




Vol. 

c 

Business & Per- 
sonal Bookkeep' 
ing Programs 

Bond 

Building 

Compound 

Cyclic 

Decision 1 

Decision 2 

Depreciation 

Efficient 

Flow 

Installment 

Interest 

Investments 

(Mortgage " 

Optimize 

Order i*JC> V .. 

Pert Tree 

Rate 

Returir J- t 

Return T 



Gam 



contained right in their source code) 

• Comprehensive 

computes Power Spectral Densities but also includes FFT's, 
Inverse-transforms, Windowing, Sliding Windows, simultaneous 
FFT's variable data sizes, etc. and as a last word our software is: 

• Readable — as alt of our pro 

ease in readinq.ff^****^. 

BrTTiiJ , ■« : r • v \w ft 

• Virtually Machine Independent — these programs 
in a subset of Dartmouth Basic but are not oriented for any cme 

particular system. Just in case your Basic might not use one of/Our 
particular system. Just in case your Basic might not use one of 
our functions we have included an appendix in Volume V which 
gives conversion algorithms for 1 9 different Basic's; that's right, 
just look it up and make the substitution for your particular 
version. If you would like to convert your favorite program in to 
Fortran or APL or any other language, the appendix in Volume 
will define the statements and their parameters as used in 
programs 

inter 

Over 85% of our programs in the first five volumes will executi 

8K Basic's with 16K of free user RAM. If you only have 4K Basic. 

because of its lack of string functions only about 60% of our programs 

in Volumes I through V wouldcij" useable, however they should 

execute in only 8K of user RAM* V\;T" ■* jjfeT^? y*P^J 

For those that have specific needs, we can talFoYan^SBf 

or you or we can write one to fit your specific needs. 



h'Qf j. 

Scnedulet 

Poac 

'■'pin- 



es & Pictures 

Animals Four 

Astronaut 

Bagel 

Bio Cycle 

Cannons 

Checkers 

Craps 

Dogfight 

Golf 

Judy 

Line Up 

Pony"*** ** .,. 

Roulette 

Sky Diver 

Tank 

Teach Me 
t/Picturat , 
"A. Newman/^ / 

J.F.K. 

Linus 

Ms. Santa 

Ntxon 

Noel Noel 



Vol. II 

Binomial 

Crii-Sg. 

Coeff 

Confidence 1 

Confidence 2 

Correlations 

Curve 

Differences 

Dual Plot 

Exp-Distri 

Least Squares 

Paired 

Plot 

Plotpts 

Polynomial Fit 

Regression 

Stat 1 

Stat 2 

T-Distribution 

Unpaired 

Variance 1 

APPENDIX A 



I 



Conv. 
Filter 
Fit 

Integration 1 
Integration 2 
Intensity 
Lola 
Macro 
Max. Min. 
Navaid 
Optical 
Planet 
PSD 
Rand 1 
Rand 2 
Solve 

Sphere Tr.ian 
Stars 
Track 
Triangle 
Variable 
tor 



Vol. Ill 

Billing 
Inventory 
Payroll 
Risk 

Schedule 2 
Shipping 
Stocks 
SwifoYi / 



Vol. IV 
Bingo 
Bonds 
Bull 

Enterprise 
Football 
Funds 1 
Funds 2 
Go-Moku 
Jack 
Life 
Loans 
Mazes 
Poker 
Popul 
Profits 
Qubic 
Rates 
Retire 
Savings 
SBA 
' "Tic.-T.ac -Toe 



(., 



Vol. V 

Andy Cap 

Baseball 
Compare 
Confid 10 
Descrip 
Differ 
Engine 
Fourier 
Horse 
egers 



Intec 
Logii 



■' C 



'eace y- c% 
Policeman > 
anta's Sleigh 

'V 



TO 



T(j 



I> 



| V ^d fl er 



Tq 



vll 



It ' 



Playboy & 
Primes 
Probal 
Quadrac 
Red Baron 
Regression 2 
Road Runner 
Roulette 
Santa 
Stat 10 
- $tat 1 1 
Steel'*"-.. m 
Top 
Vary 
Xmas 

APPENDIX B 

4>-> 



Mainfcfns/Cftmpany accounts and generates financial 
Incluoes routines ivtv Pyrl, Inv, Depr, A/R, A/P. 



B 



Designed to challenge the average player, fairly comprehensiv*e.l/Q 
Great fun for all, offers a unique opportunity for beginners in need of 
an opponjaymP'^ "j — *S 



system 



For Doctors and Dentists alike, a complete patient billim 
which also permits the maintaining of a patient history ri 

'ordprocessing for lawyers, publishers, writers, etc. Write, store 
nd change from rough draft to final copy in a variety gf formats. 






A* 






7. 



: -or meor^,, 



J8» ' 
Iron* 



form 



;&&V'*s ; ' : $24.95 
okkeeping 
ames 
Picture 




ttn» 



Vol. Ill — $39.95 



•nttf 



gM/fa, !*»**•*• Vol. V — $„9.95 

Experimenter's 



Advanced Business 
Billing, Inventory 
Investments 
Payroll 




Program 



trW»P° rt * W ' \ Ja- 

Vol. VII — $39.95 Vol. VIII — $19.! 

Professional Homeowner's 

rograms Programs 




-pports. 



oo 



• ? 4o.. 



J-6 



Vol. II — $24.95 

-' JM 'I . •■*■ c I* ' 

Math/Engineering 

Plotting/Statistics 

asic Stateme 

\ 



Taxpayers return, itemized deductions or standard 

Reconciles bank statement 

Balances your checkbook 

Computes real cost on bank financed items; cars, boats, etc. 

Computes depreciation, 4 methods, any time period 



General Purpos 



ol. VI —$49.95 
Mini-Ledge 



tion* 
7ot»» c ° ntr 



2A 



23V_i£. 



t"* cr 



25 



uaster charge 



state 1 

P.O. Box 490099-B, Key Biscayne, FL 33149 
J Phone orders call 800-327-6543 

Information — (305) 361-1153 



Add $1.60 per volume handling, all domestic shipments sent U.P.S. 
except APO and P.O. FJbx which go parcel post. Foreign orders 
add $8.00/volume for air shipment and make payable 



**; 



volume handlin 
d P.O. Box w 
add $8.00/volume for air shipment and r 

. or from N° e \ ' r 1# ro) • \- 



U.S. 



or 



Our Sof 






26 <«* 

AVAILABLE AT MOST COM I 

.mount on »«• / 

Master Charge and Bank AmerL 
....ft »o*» ""TT n Wni^l^^-rXJv^n^SSl^- 

reproduced r 



BankAmericaro 

mm 

•ver »» 
>yrighted and may 




ipted. 



'TE August 1978 59 



^r^ 



constructs which are expensive, but which 
appear only by programmer request. 

The semantics of Pascal's file variables, 
and the input/output (10) system in general 
tend to reflect characteristics of a batch 
environment, with a restricted character set. 
The basic 10 procedures are badly designed 
for an interactive terminal. The read and 
write procedures are fairly expensive to 
implement, since they are extremely general 
and all encompassing. 

On machines like the 6809 which lack a 
divide instruction of any sort (let alone a 
1 6 bit one), division will be done by calling a 
run time support routine. Only if the pro- 
grammer explicitly writes cither a divide, or 
modulus operation, will the call be gener- 
ated. Floating point numbers will be inter- 
preted, as usual. 

Pascal allows procedures and functions to 
be defined inside other procedures and func- 
tions. This requires either a display, which 
must be copied, or a system of pointers by 
which a routine may access the variables 
owned by routines in an outer scope. (The 
latter is the most likely choice.) 

Strings, arrays, records and large sets (if 
implemented) may all be assigned or passed 



TERMINALS FROM TRANSNET 



PURCHASE 

12-24 MONTH FULL OWNERSHIP PLAN 

36 MONTH LEASE PLAN 



PURCHASE PER MONTH 

DESCRIPTION PRICE 12 MOS 24 MOS 36 MOS 

DECwriterll $1,495 $145 $ 75 $ 52 

DECwriter III 2,895 275 145 99 

DECprinterl 2,495 240 125 86 

VT52 DECscope 1,695 162 85 59 

VT55 DECgraphic CRT 2,695 260 135 94 

ADM 3A CRT 875 84 45 30 

HAZELTINE 1500 CRT. 1,295 124 66 45 

Tl 745 Portable 1,875 175 94 65 

Tl 765 Bubble Mem. . . . 2,995 285 152 99 

Tl 810 RO Printer 1,895 181 97 66 

Data Products 2230 . . . 7,900 725 395 275 

QUME, Ltr. Qual. KSR . 3,195 306 163 112 

QUME, Ltr. Qual. RO .. 2,795 268 143 98 

DAT AM ATE Mini Floppy 1,750 167 89 61 

FULL OWNERSHIP AFTER 12 OR 24 MONTHS 
10% PURCHASE OPTION AFTER 36 MONTHS 

ACCESSORIES AND PERIPHERAL EQUIPMENT 

ACOUSTIC COUPLERS • MODEMS • THERMAL PAPER 
RIBBONS • INTERFACE MODULES • FLOPPY DISK UNITS 



PROMPT DELIVERY • EFFICIENT SERVICE 



X 



TransNet Cor pora tion 

2005 ROUTE 22, UNION, N.J. 07083 

201-688-7800 



as parameters to routines. These operations 
require block copies, but only if the opera- 
tions appear in the source program. Copying 
of actual parameters may be avoided, of 
course, by declaring the matching formal 
parameters as var parameters. 

The remaining points concern some philo- 
sophical concerns about Pascal and its 
implementation. (Input and output might 
also be considered in this class.) 

Philosophy 

It has been observed that much of the 
checking done at run time in other languages 
may be done at compile time in Pascal. This 
is not always so, and run time checks are 
required on assignments of a variable from a 
larger subrange to a variable in a smaller 
subrange of a given type, or on similar use 
in array indexing, and pointers must always 
be checked to ensure that they are not nil. 
It might be argued that run time checks 
might not be done at all. It is better to 
arrange for them to be turned on and off, as 
required, in different sections of code. 

The Pascal Report (see references) does 
not put boundaries on the number of ele- 
ments in the base type of a set type, but it 
does say that an implemented will likely 
choose the word length of a given computer 
as that limit. Otherwise, routines are required 
to perform various Boolean operations on 
large bit strings. Unfortunately, a great many 
Pascal programs in existence, most notably 
those for the CDC 6600, assume that it is 
possible to dclcare or use a set of char, as in: 

if c in [ 'a', ,'z'] then 
{ c is a letter } 

where c is declared as a char. The CDC 
Pascal compiler restricts the number of 
elements in the base type of a set to about 
the number of bits in a word (58), but the 
CDC character set is small enough that it 
(nearly) fits within a set. On a microcom- 
puter with the ASCII character set even 16 
bits is clearly insufficient, and larger sets 
may need to be implemented. 

There is no method provided to initialize 
variables in their declaration. This is of 
consequence when one wishes to create a 
table with values that remain constant 
throughout the life of the program (eg: a 
translation table). The only way to do this in 
standard Pascal is to write a sequence of 
assignment statements. This will typically 
result in several bytes of code for each 
assignment, as well as forcing two copies of 
each data value in the table. On a large 
machine like the CDC 6600, this may be of 



60 



August 1978IBBYTE Publications Inc 



Circle 376 on inquiry card. 



little consequence, but on a microcomputer 
with little core, this is a distinct disadvantage. 
Of course, various implementations of Pascal 
have provided a means to do this sort of 
thing efficiently, but this results in a porta- 
bility problem because each implementor 
tends to have slightly different rules about 
where and how these initializations may be 
accomplished. 

Conclusions 

For languages like Pascal, compilation is 
the preferred method of implementation on 
hybrid 8 and 16 bit microprocessors. The 
object code size on these machines for 
common constructs in these languages seems 
lo compare quite favorably with that for 
larger processors like the PDP-11 or the 
Honeywell 66/60. We illustrated this with a 
very simple array operation; the reader can 
try other operations. 

When choosing a programming language, 
one typically considers not only the ease or 
difficulty of implementation and the effi- 
ciency of the compiled code, but stylistic 
qualities as well. For example, wc have 
found the C language a pleasant and effective 
language for developing programs, but it 
does not, of course, follow that everyone 
else would. The same holds true for Pascal. 
We merely note that the Pascal is interesting, 
in that Pascal programs may be so written as 
to allow a compiler to compile code which 
makes efficient use of 8 bit accumulators on 
machines that have them, and that amongst 
the other major high level languages this is 
an unusual property (PL/I is a likely excep- 



tion). Whatever the language used, we hope 
to see the day when on microcomputer 
systems, as on UNIX, the use of assembly 
language for a program of any size is greeted 
with surprise, shock, depairs, dismay and 
outright hostility." 



REFERENCES 

1. Jensen, K and Wirth, N, Pascal User Manual 
and Report, Springer-Verlag, New York 1975. 

2. Bell, JR, "Threaded Code," CACM, volume 
16, number 6, June 1973, pages 370 thru 
372. 

3. Dewer, RBK, "Indirect Threaded Code," 
CACM, volume 18, number 6, June 1975, 
pages 330 thru 331 . 

4. Aho, AV, and Ullman, JD, Principles of Com- 
piler Construction, Addison-Wesley, Don 
Mills, Ontario 1977. 

5. 990 Computer Family Systems Handbook , 
manual number 945250-9701, Texas Instru- 
ments, Austin TX 1976. 

6. LSI1 1 PDP1 1/03 Processor Handbook, Digital 
Equipment Corp, Maynard MA 1975. 

7. M6800 Microprocessor Programming Manual, 
Motorola Semiconductor Products, Phoenix 
AZ 1975. 

8. Kernighan, BW, and Ritchie, DM, The C Pro- 
programming Language, Prentice-Hall, Engle- 
wood Cliffs l\IJ 1978. 

9. Thompson, KL, and Ritchie, DM, "The UNIX 
Time-Sharing System," CACM, volume 17, 
number 7, July 1974, pages 365 thru 375. 

10. Honeywell 66/60 Macro Assembly Program, 
Honeywell Information Systems, Phoenix AZ 
1972. 

11. Wiles, et al, "Compatibility Cures Growing 
Pains of Microcomputer Family," Electronics, 
2 February 1978. 

12. M6809 Advanced Microprocessor, Motorola, 
Austin TX. 



^■iiiiiiiiiiiiiiiiiiiiiiiiiiitiiiiiitiiiiiiiiiiiiiiiiiiiiiiiiiMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiifiiiiiiiiiiiMiiiiirifriiiiiiiifitiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiifiiiu^ 

Infinite Programming Possibilities 



j Microcomputer Handbook by Charles J Sippl defines the 

■ present state of computer technology very well, con- 

■ centrating on both hardware and software. Lucid and 
| complete glossaries are combined with a variety of 

■ illustrations. Topics covered include: microcom- 
• puters-where they are, what they are doing, and 
; what is next; kits; distributed intelligence; and 
; why the new systems are easier to use. The 
j book was written by a computer industry lec- 
turer and consultant and is highly recom- 

i mended for the intelligent lay person as well as 
| for professionals and experimenters. The glos- 
I saries alone are worth the price of the book— 
j don't miss this one! This hardcover reference is 




BITS 



only $19.95. 



Top-down Structured Programming Techniques. What is S3 
structured programming? Clement L McGowan and = 
John R Kelly answer this question in their lively, 3 
well-written book, Top-down Structured Program- 3 
ming Techniques. Discover the three basic types 3 
of flowcharts and how to optimize them. One 3 
section deals with the best ways to manage pro- ss 
grams being written by a team of programmers. = 
An important feature of this book is its univer- 3 
sality: practically any program in any language 3 
can be improved by using the ideas described 8 
in it. 288 pp. $1 5.95 hardcover. 

For convenience in ordering, please use the order 3 
form on page 83, writing in the books you want. 



The Microcomputer Bookstore 



CALL YOUR BANK CARD ORDERS 
TOLL FREE 1-800-258-5477. 



25 Route 101 West, Peterborough NH 03458 

?Ti iiiiiiitiiiif iifiiiiiiiiiiifiiiifiiiiiiiiiitfitiiiiiiitjiiiitiriiiiiiiiiii mil ii n» til tiiiiitiiifin iifiiiifiiiiiiiitiiiiiiiiiiiiiiiititiiiitiifiififiiiiiiiirifiiiiriititiififii ir^ 



Circle 29 on inquiry card. 



August 1978 © BYTE Publications Inc 61 



LEARN TO 
PROGRAM 

mmroco>ii»iti:rs 

And at an affordable price. The 
Modu-Learn™ home study course 
from Logical Services. 
Now you can learn microcomputer 
programming in ten comprehensible 
lessons. At home. In your own time. At 
your own pace. 

You learn to solve complex problems 
by breaking them down into easily 
programmed modules. Prepared by 
professional design engineers, the 
Modu-Learn™ course presents sys- 
tematic software design techniques, 
structured program design, and prac- 
tical examples from real 8080A 
fhicro-computer applications. All in a 
modular^sequence of 10 lessons . . . 
more than 500 pages, bound into one 
practical notebook for easy reference. 
You get diverse examples, problems, 
and solutions. With thorough back- 
ground material on micro-computer 
architecture, hardware/software trade- 
offs, and useful reference tables. All 
for only $49.95. 

For $49.95 you learn design tech- 
niques that make software work for 
you. Modu-Learn™ starts with the 
basics. Our problem-solution ap- 
proach enables you to "graduate" as 
a programmer. 

Circle the reader service number be- 
low to receive our free descriptive 
brochure and course outline. 

Use your Master Charge or VISA 
card to order today. Call Pat at (408] 
245-8855. 




Circle 215 on inquiry card. 



P.O. Box 60968 
Sunnyvale, CA 94088 
408-245-8855 



BYTE's Bugs 



The Price Is Wrong 

In the book review of The Elements 
of Programming Style, which appeared 
in May 1978 BYTE, page 161, the price 
of the book should have been $5.95, 
not $2.65. Thanks go to P | Plauger 
for notifying us of this error." 



Transposition Bug 

We apologize for any inconvenience to 
readers' internal interpreters caused by 
the slight deviation in scanning between 
pages 164 and 165 in the June 1978 
issue. The two columns of text on page 
165 were inadvertently reversed. Trans- 
position ol these two columns will 
restore the correct syntactic order of the 
text (see below)." 



Still Further Thoughts 

On page 122 of the |une 1978 
BYTE there appeared a Language Forum 
item called "An APL Interpreter: 
Further Thoughts." In paragraph 2 Tom 
Brightman remarks that most reductions 
are monadic. David Eisenstein con- 
tacted us to state that most reductions 
are dyadic and research into several APL 
books verified this. 

I feel that the problem here is one of 
interpretation. If a reduction function, 
such as +/, is considered to be one 
operation, then the operation is mon- 
adic. The one operand is to the right of 
the function and is usually a vector. 

However, the reduction function is 
usually defined to be only the left slash 
symbol. This means that the reduction 
function is dyadic. The righthand 
operand would usually be mi array and 
the lefthand operand would be some 
operator such as + or x. This is the form 
that texts seem to use. . .RGAC" 



f 



System Cle 

When a CIRI./W followed lis .1 Ck\u is 

delected in the Control Check $ecUon, .i 

jump is made In INITiali/c and .ill svslem 
paumeters arc initialized. I he -.Liecn is 

cleared ,md the cursor is moved in t riL- upper 
left-hand earner. 

System Cleat is designed to be accessed 
by pressing CTR LAV and then Clcar.to avoid 
accidental use. Ii is, however, occasionally 
handy to be able to reinitialize the entire 
program. 

Clear Screen and Home Cursor 

When unly the Clear ke\ is pressed, the 
program jumps tu CLEAR. This clears the 
screen and returns the cursor to the upper 
left-hand corner. Memory Status words aie 
unchanged- 
Home Cursor 

When a CTRL/X is detected in the 
Control Check section, the program jumps 
to Home, which returns the cursor to the 
upper left-hand corner but dues not affect 
the screen contents or the memory status 
words, 

Escape 

When the escape ke> (ESC) is pressed, it 
is detected by the Control Check section and 
a jump is made lo hexadecimal memory 
addiess 345 wheie the program receives 
instructions for exit from GRAPH (see 
Program Function and Use). 

Addressing and Memory Requirements 

In its present assembly, GRAPH resides 

in hexadecimal memory locations 000 thru 

3FFF and is designed to drive a VDM-I 

addressed at hexadecimal CC00. VDM-1 

status port (to reset scrolling) is addressed 

ai hexadecimal C8. 

In addition, six 1 K byte memory sectors 

are set aside for the STORE and RECALL 

functions (see table 3). 

A keyboard inputs status information to 

10 port 00 (data present * bit 6 set) and 

data to 10 port 01." 



H.«id«cimil 
Location* ol Biom 
.Addrati in GRAPH 



F 7*9 K 



CCTv 



239. 263 1101 



A 300 bps cassette of GRAPH 


in Kansas 


Cilv, BYTE or Cuter lormats with 


a CUTEH 


header is available tor $5 (cash oi mo 


iev order) 


from UNB Audio Visual Servic 


bs. UNB. 


Fredeficton NB CANADA E3B 5A3 





6 y *v CI 

CSTART ) 

il the program is in the vertical write mode). 
It then adds the value 80 to the accumulator 
and deposits the result back into 3F7. This 
has the effect of alternately loading that 
location with hexadecimal 00 or 80 every 
lime ibis routine is entered. Thus, one stroke 
of the appropriate key (CTRL/0) puts you 
in the Vertical Write mode, and another 
stroke takes you out of that mode. Opera- 
tion then jumps back to STATIN in the 
Driver. 

Corsor (On/Off) 

This operation works exactly the same as 
Vertical Write by alternately loading hexa- 
decimal location 3I'B with hexadecimal 00 
or 80. 

Cursor Write/Don't Write 

Cursor write/don't write works exactly (ike 
Vertical Write, alternately loading location 
hexadecimal 3F6 with hexadecimal 00 or 80. 

Next Store 

When a CTRL/W and a number from 1 lo 

n arc detected (see Control Check Section), 
the Next Store routine is entered. This 
routine is actually only a series of compari- 
sons in the Control Check Section which 
compare the input character with several 
ASCII hexadecimal values. For example, 
after CTRL/W and a numeral 1 are entered 
from the keyboard, the data input to the 
computer is hexadecimal 31. In this case a 
CPI 31 instruction would route the program 
lo instructions thai would load status word 
hexadecimal memory location 3F8 with 
hexadecimal 00, and when 3F8 is checked 
by the next STORE operation, it would 
siore page 1 in the first memory sector. 
Entering a 3 would be detected by a CPI 33, 
which would load 3F8 with hexadecimal 02 
and set up the next STORE operation for 
page 3. I 



270 (201 

3: Six 1 K byte 

y sectors which are 

iside for the STORE 

LL functions. 



>*Bd«cimal 
itionof End 
ill in GRAPH 



C END ) 



SERVICES INCORPORATED 



62 Aubiisi 1978 9 BYTE Publications Inc 




At last. 



Finally, the macro maker of computer 
printers has gone micro. With a high-speed, 
desk-top, non-impact printer complete with 
parallel interface (Model PI) that' s perfect for 
the home, hobby and small business user. A 
complete 80-column printer for less than lii^ 

The new Centronics microprinter is 
big on performance. It prints clean, clear dot 
matrix characters at a rate of 150 lines per 
minute. Yet it's quiet, compact, comes fully 
warranted and is backed by Centronics' 
worldwide service. It's even available in a 
serial interface version (Model SI) for 
remote applications. 

Of course, buying your small systems 
printer from the industry's leading producer 
of printers is simply a better buy. You get the 
security, support and systems flexibility only 
Centronics can bring. Plus the targeted tech- 
nology that brings out the best in any computer. 



So when you think small printers, think 
big. Think Centronics. For more information, 
just clip and mail the coupon below. 



I~" 



Centronics Data Computer Corp. 
Hudson, NH 03051 

Gentlemen : Tell me more about your new 
microprinters. 



Name. 
Title _ 



"~l 



Company . 

Address 

Town 

State 



.Zip. 



Phone 



_B878__| 



CERTRDniCS PRH1TER5 

Simply Better 



Circle 50 on inquiry card. 



BYTE Augusl 1978 63 



The Number Crunching 
Processor 



Peter Nelson 
68 Seaver St 
Wellesley MA 02181 



National Semiconductor Corporation's 
MM57109 microprocessor is designed speci- 
fically for numeric processing. Called "The 
Number Cruncher" in their advertising, the 
MM 571 09 has an instruction set that in- 
cludes floating decimal arithmetic, logarith- 
mic and trigonometric functions and other 
sophisticated features. Although it can be 
used as a stand alone device with read 



only and programmable memory, or as the 
"brain" of a smart instrument, most hobby- 
ists will probably want to use it as a 
peripheral processor where it will save both 
money and memory space. 

The MM57109 requires a 9 V power 
supply which can be configured as +5 V and 
— 4 V for easier TTL interface. It also re- 
quires a single phase 5 V clock of about a 



I, /Dl 




I 2 /D2 — 




I 3 /D3 — 




4 
I 4 /D4 




5 

I 5 /ADR 




6 
SYNC 




OSC — 




6 
ISEL 




9 
HOLD 




IO 
R/W 




1 1 
POR 




RDY^ 




13 
ERROR 




14 
F2 





TOP VIEW 



vss 

VDD 





5V 

-4V 




CLOCK 
GEN 



l INTERNAL CLOCKS 



INITIALIZATION 



I 5 /ADR- 

14 /D4- 
I 3 /D3- 
I 2 /D2 - 
I i /Dl - 



TTTt 



ARITHMETIC 
UNIT 



MICROPROGRAM 
STORAGE ROM 



CONTROL 
SIGNALS 




4 BIT DIGIT DATA 



■ HOLD 

• RDY 
. BR 

. ISEL 

• R/W 
, DAS 

. Fl 

• F2 

. ERROR 



8 DIGIT 
\ MANTISSA 
REGISTER 
FILE 



■ DAI (LEAST) 

■ DA 2 

■ DA3 

• DA4 (MOST1 

■ DOI (LEAST) 
•D02 

. D03 

. D04 (MOST) 



Figure 1 : Pin assigments for the dual in line packaged MM 5701 and a functional block diagram of the processor. Reproduced 
courtesy of National Semiconductor Corporation. 



64 



August 1978 © BYTE Publications Inc 



400 kHz frequency. This is internally 
divided down to a 100 kHz SYNC signal 
which forms the basic time period of the 
processor. National calls this 10 /is period a 
microcycle. All instruction times are ex- 
pressed in microcycles. 

A pinout and block diagram are shown in 
figure 1. The MM57109 receives instructions 
and data via input lines I -| thru lg. Timing of 
an instruction or data fetch operation is 
shown in figure 2. Note that the RDY 
output goes high to signal that input is 
required, l-j thru I5 may change only when 
the RDY line is high. Processing begins when 
it returns to a logic "0," 8 microcycles later. 
The MM57109 can be halted when the RDY 
line is high by applying a logic "1" to the 
HOLD input before or at the rising edge of 
RDY. If HOLD goes high after RDY does, 
the processor will not stop until the next 
RDY pulse. Stopping the processor can 
allow more time for an external device to 
prepare data or an instruction. The 
MM57109 cannot be halted during execu- 
tion of an instruction. For 2 word opera- 
tions, the RDY line will go high twice, once 
for each fetch. The ISEL output is used 
during such operations to indicate when the 
processor is expecting an instruction; it will 
go low when data is expected. This is useful 
if the data and instructions are coming from 
two different sources. 

DO-] thru DO4 are used to output data 
during an OUT operation. The number of 
digits and format depend on parameters set 
by software, especially the SMDC and 
TOGM instructions. The RW output is 
strobed low, once for each digit. Note in 
figure 3 that the MM57109 issues a second 
RDY pulse during the OUT operation. This 
is for external memory control and can be 
ignored if the processor is being used as a 
microcomputer peripheral. 

The digit address lines, DA-| thru DA4, 
and the digit address strobe, DAS, are used 
to provide address information when the 
MM57109 is configured as a stand alone 
processor with its own memory. Typically, 
the digit address lines would provide the 
lower four bits of address with the upper 
four bits coming from an external read only 
memory. 



Reference Source: 

The source of the information used to design this circuit for the 
MM 57 109 is the National Semiconductor publication, MM 57 109 
MOS/LSI Number Oriented Microprocessor, copyright 1977 by Nation- 
al Semiconductor Corporation, published in March 1977. The publi- 
cation number of this 24 page booklet is IM-B50M37. National Semi- 
conductor Corporation is located at 2900 Semiconductor Dr, Santa 
Clara CA 95051, and the MM57109 is available from electronics distri- 
butors who handle National Semiconductor's product line. 



~-8li CYCLES 



INSTRUCTION 
IS EXECUTED 



HOLD 



Ii-T« 



l— DATA MAY CHANGE, 
NEW OPCODE MAY BE INTRODUCED 

Figure 2: Instruction fetch and hold timing diagram. The RDY line goes high 
when the data is ready. If the HOLD line is also high RDY will remain high. 
When the HOLD line goes low, the RDY line will follow and the instruction 
will be executed. Adapted from figure 8c on page 10 of National Semicon- 
ductor Corporation's documentation, IM-B50M37 (March 1977). 



r 



SECOND RDY PULSE 



RDY FOR 
^NEXT IN- 
j STRUCTION 



OUT CODE 



11-16 



)C_> 



DON T CARE 



<z 



ZI_XZ3C^ 



Figure 3: Timing diagram of an OUT instruction. The second RDY pulse can 
be ignored if the processor is being used as a peripheral to a computer. 



August 1978 © BYTE Publications Inc 65 



Table 1: The 70 command 
instruction set for the 
MM 571 09. The commands 
are broken into seven 
different classes: digit 
entry, data moves, math 
functions, clearing opera- 
tions, branch functions, 
10 and mode control. 
Reproduced courtesy of 
National Semiconductor 
Corporation. 



The POR input is used to reset the 
processor after power is first applied. Fol- 
lowing a 2 microcycle, or greater, positive 
pulse on this line, the MM57109 will issue 
three RDY signals. The first two should be 
ignored; processing begins following the 
third one. 

The remaining outputs are all controlled 
by software. F-| and F2 may be set or pulsed 
by the SF or PF instructions. The ERROR 
line indicates an illegal operation or overflow 



and BR responds to a jump or branch 
operation with a pulse to "0." 

Instruction Set 

Table 1 details the MM57109's 70 
instructions. This number is achieved with 
only a 6 bit word through the use of the 
INV instruction, octal 40, which gives 
double service to some of the other op 
codes. The instruction set provides a com- 
plete set of scientific calculator operations in 



CLASS 


SUBCLASS 


MNEMONIC* 


OCTAL OP 
CODE 


FULL NAME 


DESCRIPTION 


Digit 







00 





Mantissa or exponent digits. On first digit (d) 


Entry 




1 


01 


1 


the following occurs: Z -» T 






2 


02 


2 


Y -*, Z 






3 


03 


3 


X -> Y 






4 


04 


4 


d -» X 






5 


05 


5 


See description of number entry on page 11. 






6 


06 


6 








7 


07 


7 








8 


10 


a 








9 


11 


9 








DP 


12 


Decimal Point 


Digits that follow will be mantissa fraction. 






EE 


13 


Enter Exponent 


Digits that follow will be exponent. 






CS 


14 


Change Sign 


Change sign of exponent or mantissa. 

Xm = X mantissa 

Xe - X exponent 

CS causes -Xm ->■ Xm or -Xe ■* Xe depending 

on whether or not an EE instruction was 

executed after last number entry initiation. 






PI 


15 


Constant n 


3.1415927 -» X, stack not pushed. 






EN 


41 


Enter 


Terminates digit entry and pushes the stack. 
The argument entered will be in X and Y. 

Z-*T 

Y-*Z 

X->Y 






NOP 


77 


No Operation 


Do nothing instruction that will terminate digit 
entry. 






HALT 


17 


Halt 


External hardware detects HALT op code and 
generates HOLD = 1. Processor waits for HOLD 
= before continuing. HALT acts as a NOP and 
may be inserted between digit entry instructions 
since it does not terminate digit entry. 


Move 




ROLL 


43 


Roll 


Roll Stack. 

T Y 

v 2 y 






POP 


56 


Pop 


Pop Stack. 
Y-X 
Z->Y 
T-»Z 
0->-T 






XEY 


60 


X exchange Y 


Exchange X and Y. 
X«-i-Y 






XEM 


33 


X exchange M 


Exchange X with memory. 
X<->M 






MS 


34 


Memory Store 


Store X in Memory. 
X-»M 






MR 


35 


Memory Recall 


Recall Memory into X. 
M-X 






LSH 


36 


Left Shift Xm 


X mantissa is left shifted while leaving decimal 
point in same position. Former most significant 
digit is saved in link digit. Least significant digit 
is zero. 






RSH 


37 


Right Shift Xm 


X mantissa is right shifted while leaving decimal 
point in same position. Link digit, which is 
normally zero except after a left shift, is shifted 
into the most significant digit. Least significant 
digit is lost. 



66 



August 1978©BYTE Publications Inc 



an easy to use keyboard entry format. The 
processor uses reverse Polish notation, RPN, 
which is the same system used on the 
Hewlett-Packard calculators. This method 
can obviate the need for parentheses in 
many cases. 

There is a complete set of conditional 
branch test operations that may be quite 
useful if a programmable calculator or higher 
level language is being implemented. The BR 



output will pulse low if the condition being 
tested is true. 

Among the numerous digit entry and 10 
operations are three different ways to input 
digits: AIN, IN and "digit as instruction" 
number entry, octal 00-1 I. This latter meth- 
od is most similar to calculator number 
entry and is the input system assumed for 
the interface in this article. 

The MM57109 offers two conventional 



CLASS 


SUBCLASS 


MNEMONIC* 


OCTAL OP 
CODE 


FULL NAME 


DESCRIPTION 


Math 


F (X,Y) 


+ 


71 


Plus 


Add X to Y. X + Y - X. On +, -, x, / and YX 
instructions, stack is popped as follows: 

Z->Y 

T->Z 

0->T 
Former X, Y are lost. 






- 


72 


Minus 


Subtract X from Y. Y - X -> X 






X 


73 


Times 


Multiply X times Y. Yx X-X 






/ 


74 


Divide 


Divide Xinto Y. VrX->X 






YX 


70 


Yto X 


Raise Y to X power. Y x -* X 




F (X,M) 


INV+* 


40,71 


Memory Plus 


Add X to memory. M + X -» M 

On INV +, -, x, and / instructions, X, Y, Z, 

and T are unchanged. 






INV-' 


40,72 


Memory Minus 


Subtract X from memory. M - X -+ M 






INVx* 


40,73 


Memory Times 


Multiply X times memory. M x X -» M 






INV/" 


40, 74 


Memory Divide 


Divide X into memory. M * X -> M 




F (X) Math 


1/X 


67 


One Divided by X 


1 * X -+ X. On all F (X) math instructions Y, Z, 
T and M are unchanged and previous X is lost. 






SORT 


64 


Square Root 


\/X-» X 






SQ 


63 


Square 


X2-X 






10X 


62 


Ten to X 


10 x -~ X 






EX 


61 


EtoX 


e x ^X 






LN 


65 


Natural log of X 


In X- X 






LOG 


66 


Base 10 log of X 


log X - X 




F (X) Trig 


SIN 


44 


Sine X 


SIN(X)~X. On all F(X] trig functions, Y, Z, T, 
and M are unchanged and the previous X is lost. 






cos 


45 


Cosine X 


COS(X)-X 






TAN 


46 


Tangent X 


TAN(X)->X 






INV SIN* 


40,44 


Inverse sine X 


SIN _1 (X]^X 






INV COS* 


40,45 


Inverse cosine X 


COS _1 (X)^ X 






INV TAN* 


40,46 


Inverse tan X 


TAN" 1 (X)-*X 






DTR 


55 


Degrees to radians 


Convert X from degrees to radians. 






RTD 


54 


Radians to degrees 


Convert X from radians to degrees. 


Clear 




MCLR 


57 


Master Clear 


Clear all internal registers and memory; initialize 
I/O control signals, MDC ■ 8, MODE » floating 
point. (See initialization,) 






ECLR 


53 


Error flag clear 


O — Error flag 


Branch 


Test 


JMP* 


25 


Jump 


Unconditional branch to address specified by 
second instruction word. On all branch instruc- 
tions, second word contains branch address to 
be loaded into external PC. 






TJC 


20 


Test jump 
condition 


Branch to address specified by second instruc- 
tion word if JC d6) is true (=1). Otherwise, 
skip over second word. 






TERR* 


24 


Test error 


Branch to address specified by second instruc- 
tion word if error flag is true (=1). Otherwise, 
skip over second word. May be used for 
detecting specific errors as opposed to using the 
automatic error recovery scheme dealt with in 
the section on Error Control. 






TX = 0* 


21 


Test X = 


Branch to address specified by second instruc- 
tion word if X ■ 0. Otherwise, skip over second 
word. 






TXF* 


23 


Test IXK 1 


Branch to address specified by second instruc- 
tion word if | X | < 1, Otherwise, skip over 
second word. (i.e. branch if X is a fraction.) 






TXLTO* 


22 


Test X < 


Branch to address specified by second instruc- 
tion word if X < 0. Otherwise, skip over second 
word. 



August 1978 © BYTE Publications Inc 67 



microprocessor operations, HALT and NOP, 
but with a difference. HALT, by itself, only 
acts as a NOP; it does not stop the machine. 
It is designed to be detected with external 
hardware that will generate a HOLD signal 
to halt the processor. 

The number of microcycles required to 
execute an instruction may vary from a few 
hundred to many thousands as shown in 
table 2. Speaking generally, the complex 
operations such as trigonometric and loga- 



rithmic functions take the greatest time. As 
a bench mark, the floating point addition 
time is 2200 microcycles, or 22 ms. However 
the floating point add time might not make 
a very reliable benchmark since it varies over 
a wide range (22 ms, typical, to 66 ms, worst 
case) depending on the numbers involved. 

Figure 4 shows how easy it is to interface 
the MM57109 to your system. Most of the 
required pins are TTL compatible. The POR 
and HOLD inputs, however, must have a 



Table 7, continued: 









OCTAL OP 






CLASS 


SUBCLASS 


MNEMONIC* 


CODE 


FULL NAME 


DESCRIPTION 


Branch 


Count 


IBNZ 


31 


Increment memory 
and branch if 
M*0 


M + 1 -* M. If M = 0, skip second instruction 
word. Otherwise, branch to address specified 
by second instruction word. 






DBNZ 


32 


Decrement 
memory and 
branch if M ^ 


M - 1 -* M. If M = 0, skip second instruction 
word. Otherwise, branch to address specified 
by second instruction word. 


I/O 


Multi-digit 


IN* 


27 


Multidigit 
input to X 


The processor supplies a 4-bit digit address 
(DA4— DAI) accompanied by a digit address 
strobe (DAS) for each digit to be input. The 
high order address for the number to be input 
would typically come from the second instruc- 
tion word. The digit is input on D4-D1, using 
ISEL = to select digit data instead of in- 
structions. The number of digits to be input 
depends on the calculation mode (scientific 
notation or floating point) and the mantissa 
digit count (See Data Formats and Instruction 
Timing). Data to be input is stored in X and the 
stack is pushed (X -*• Y -* Z -*■ T). At the con- 
clusion of the input, DA4-DA1 ■ 0. 






OUT' 


26 


Multidigit output 
from X 


Addressing and number of digits is identical to 
IN instruction. Each time a new digit address is 
supplied, the processor places the digit to be 
output on D04-D01 and pulses the R/W line 
active low. At the conclusion of output, D04— 
D01 = 0andDA4-DA1 = 0. 


I/O 


Single-digit 


AIN 


16 


Asynchronous 
Input 


A single digit is read into the processor on D4— 
D1. ISEL ■ is used by external hardware to 
select the digit instead of instruction. It will not 
read the digit until AD~R = (ISEL = selects 
ADR instead of I5), indicating data valid. F2 is 
pulsed active low to acknowledge data just read. 


I/O 


Flags 


SF1 


47 


Set Flag 1 


Set F1 high, i.e. F1 =1. 






PF1 


50 


Pulse Flag 1 


F1 is pulsed active high. If F1 is already high, 
this results in it being set low. 






SF2 


51 


Set Flag 2 


Set F2 high, i.e. F2 = 1. 






PF2 


52 


Pulse Flag 2 


F2 is pulsed active high. If F2 is already high, 
this results in it being set low. 






PRW1 


75 


Pulse R/W 1 


Generates R/W active low pulse which may be 
used as a strobe or to clock extra instruction 
bits into a flip-flop or register. 






PRW2 


76 


Pulse R/W 2 


Identical to PRW1 instruction. Advantage may 
be taken of the fact that the last 2 bits of the 
PRW1 op code are 10 and the last 2 bits of the 
PRW2op code are 01. Either of these bits can be 
clocked into a flip-flop using the R/W pulse. 


Mode 




TOGM 


42 


Toggle Mode 


Change mode from floating point to scientific 


Control 










notation or vice-versa, depending on present 
mode. The mode affects only the IN and OUT 
instructions. Internal calculations are always in 
8-digit scientific notation. 






SMDC* 


30 


Set Mantissa 
Digit Count 


Mantissa digit count is set to the contents of the 
second instruction word (=1 to 8). 






INV 


40 


Inverse Mode 


Set inverse mode for trig or memory function 
instruction thatwill immediately follow. Inverse 
mode is for next instruction only. 



68 



August 1978 ©BYTE Publications Inc 



JgfctfiJJQ 




M s J*^[jiQ § 





MODEL CC-8 

$185.00 (4800 Baud) 

$195.00 (9600 Baud and 220V/50 Hz) 



9600 BAUD CASSETTE RECORDER 

An ASYNCHRONOUS NRZ type Recorder with remote motor start/stop. Error rate 
10 8 at 4800 BAUD. Can be used from 110 to 9600 BAUD into a UART - no clocking 
required. This is not an audio recorder. It takes RS232 or TTL signals from the terminal or 
computer and gives back the same signals. No audio interface is used. Motor start/stop is 
manual or through TTL or RS232 signals. 

Tape speeds are 1.6" / 3.0" and 6.0" per second. 110 volt, 60 Hz, 5 watts. (220 Volts on 
special order). Can use high quality audio cassettes (Philips Type) or certified data cassettes. 
Can be used in remote locations from a 12 Volt battery. 

Recommended for DATA LOGGING, WORD PROCESSING, COMPUTER PROGRAM 
RELOADING and DATA STORAGE. Manual control except for motor start/stop. 6800, 
8080 or Z80 software for file or record searching available on request with order. Used by 
major computer manufacturers, Bell Telephone and U.S. Government for program reloading 
and field servicing. 



AVAILABILITY - Off the shelf. 



PROVIDES MONITOR AND TAPE SOFTWARE in ROM. TERMINAL and TAPE PORTS 
on SAME BOARD. CONTROLS ONE or TWO TAPE UNITS (CC-8 or 3M3B). 

This is a complete 8080, 8085, or Z80 system controller. It provides the terminal I/O 
(RS232, 20 mA or TTL) and the data cartridge I/O, plus the motor controlling parallel I/O 
latches. Two kilobytes of on board ROM provide turn on and go control of your Altair or 
IMSAI. NO MORE BOOTSTRAPPING. Loads and Dumps memory in hex on the terminal, 
formats tape cartridge files, has word processing and paper tape routines. Best of all, it has 
the search routines to locate files and records by means of six, five, and four letter strings. 
Just type in the file name and the recorder and software do the rest. Can be used in the 
BiSync (IBM), BiPhase (Phase encoded) or NRZ modes with suitable recorders, interfaces 
and software. 

This is Revision 8 of this controller. This version features 2708 type EPROM's so that 
you can write your own software or relocate it as desired. One 2708 preprogrammed is 
supplied with the board. A socket is available for the second ROM allowing up to a full 2K 
of monitor programs. 

Fits all S100 bus computers using 8080 or Z80 MPU's. Requires 2 MHz clock from bus. 
Cannot be used with audio cassettes without an interface. Cassette or cartridge inputs are 
TTL or RS232 level. 

AVAILABILITY - Off the shelf. 




2SIO (R) CONTROLLER 
$190.00, Tested & Assmb. 



iiihirtif i';im i 




6800 CONTROLLER for SWTP 
$190.00, Tested & Assmb. 



PROVIDES MONITOR AND TAPE SOFTWARE in EPROM. EXPANDS MIKBUG with IK 
of ADDITIONAL ROM PROGRAM 

This is a complete tape controller for the SWTP 6800 system. Has 3K of EPROM space 
for your own programs. A 1 K ROM (2708) is provided with all tape and monitor functions. 
The ROM program is identical to our extensive 8080 ROM program. 

Has one ACIA for one or two tape drives, one UART for an additional Serial port and a 
4 bit parallel port for motor control. Will control one or two CC-8 or 3M3B drives with the 
software provided. Can be used with other tape drives controllable with 4 TTL bits if 
appropriate software changes are made. 

Extra serial port is provided for your use with a second terminal or printer (RS232, TTL 
or 20 ma). 

The ROM program supplements the MIKbug program and is entered automatically on 
reset. SWTbug compatible ROM is also available. 

AVAILABILITY - Off the shelf. 



Z 80 BOARD for SWTP COMPUTER 

Now you can use the 8080/Z80 software programs in your SWTP 6800 machine. Re- 
places your MPU board with a Z80 and ROM so that you are up and running with your 
present SWTP memory and MPS card. 1 K ROM on board replaces MIKBUG. 

AVAILABILITY - Off the shelf. 




_$190.00, Tested & Assmb. 



For U.P.S. delivery, add $3.00. Overseas and air shipments charges collect, N.J. Residents add 5% Sales Tax. WRITE or CALL for further 
information. Phone Orders on Master Charge and BankAmericard accepted. 



National Multiplex Corporation 

_j 3474 Rand Avenue, South Plainfield NJ 07080 Box 288 Phone (201) 561-3600 TWX 710-997-9530 ^ 



Circle 275 on inquiry card. 



BYTE August 1978 69 





EXECUTION 


EXECUTION 




EXECUTION 


EXECUTION 


INSTRUCTION 


TIME 


TIME 


INSTRUCTION 


TIME 


TIME 


MNEMONIC 


(MICROCYCLES) 


(MICROCYCLES) 


MNEMONIC 


IMICROCYCLES] 


(MICROCYCLES) 




(AVERAGE) 


(WORST-CASE 
VALUES) 




(AVERAGE) 


(WORST-CASE 
VALUES) 


0-9 




238 


OUT 




583 


DP 




152 


IN 




395 


EE 




151 


SF1 




163 


CS 




166 


PF1 




186 


PI 




1312 


SF2 




163 


HALT 




134 


PF2 




185 


AIN 




284 


PRW1 




130 


TJC 




208 


PRW2 




130 


TX = 




278 


SIN 


56200 


95900 


TXLTO 




197 


COS 


56200 


95900 


TXF 




277 


TAN 


35000 


97600 


TERR 




191 


INV SIN 


54000 


93900 


JMP 




186 


INV COS 


54000 


93900 


IBNZ 




2314 


INV TAN 


30200 


92900 


DBNZ 




2314 


LN 


24800 


92000 


SMDC 




163 


LOG 


30700 


92600 


XEM 




812 


EX 


30800 


93900 


MS 




839 


10X 


27400 


96500 


MR 




1385 


+. - 


2200 


6600 


LSH 




168 


INV*. INV- 


1700 


5000 


RSH 




173 


IMt, M-) 






INV 




166 


X 


3200 


22700 


EN 




552 


INV x IMXI 


2700 


21400 


TOGM 




157 


/ 


7800 


22300 


ROLL 




905 


INV/IM/I 


7300 


21100 


ECLR 




163 


1/X 


4 500 


22800 


POP 




448 


YX 


55400 


95500 


MCLR 




734 


SORT 


7000 


30200 


XEY 




652 


SQ 


3000 


21900 


NOP 




122 


DTR, RTD 


9600 


41700 



Table 2: Execution times for command set. The execution time is measured 
in microcycles which are defined as being 10 ps long. Reproduced courtesy of 
National Semiconductor Corporation. 



IN/OUT Instructions (a) Mode ■ Scientific Notation 



DA4-DA1 



IN: D4 

OUT: D04 



D3 
D03 



D2 

D02 



D1 
DOI 



MDC + 3 



Most significant exponent digit 

Least significant exponent digit 

Sm Se 

Not used 

Most significant mantissa digit {Decimal point follows this digit) 



Least significant mantissa digit 



IN/OUT Instructions (b) Mode = Floating Point 



DP POS 



MDC + 3 



11 
10 



12-MDC 



IN: 


D4 


D3 


D2 


D1 


OUT: 


D04 


D03 


D02 


D01 




Sm 

DPPOS 
Most sign 




ficant Mantissa Dig 



t = 0-9 






Least significant Mantissa Digit = 0—9 



Table 3: The data format for floating point and scientific notation input and 
output. MDC stands for mantissa digit count which is set by the SMDC 
instruction, it is initially set to 8. Sm is the sign of the mantissa; it is for 
positive and I for negative numbers. Se is the sign of the exponent which is 
set to 0, for positive, in the floating point mode. DP POS Is the decimal point 
position indicator which is a value in the range from 1 1 to 12-MDC, which 
indicates a digit, as given by the DP POS column In the table. The decimal 
point is located to the right of this digit. 



voltage swing from — 4 V to +5 V. Fortu- 
nately, this is easily achieved with an LM339 
comparator which makes a fine TTL to MOS 
level shifter and is widely available. The BR 
and RW lines are the only required outputs 
that cannot drive TTL directly. CMOS in- 
verters and flip flops are used to latch pulses 
from these lines anyway, but in this case 
they also provide buffering. 

The 2.2 k pull down resistors to Vrjrj 
from the ERROR, RDY and DO lines 
assume the use of a bipolar (TTL) input 
port. If your input port lines use high 
impedance MOS receivers, then these re- 
sistors should be replaced by 15 k resistors 
to ground, 0V. 

It is worth mentioning that in this circuit 
there are a number of outputs of the 
MM57109 that are completely unused. This 
is because the MM57109 is a very versatile 
device that can be configured in several 
different ways. In this application the com- 
puter performs many of the functions of the 
unused pins. 

The simple program detailed in listing 1 is 
designed to allow you to become familiar 
with the MM57109 by giving it one instruc- 
tion at a time and single stepping its opera- 
tion. A number of useful subroutines are 
included that may be applied to larger 
applications programs. After each colon 
prompt character is displayed you are ex- 
pected to supply a two digit octal number 
corresponding to the instruction you wish to 
execute. If it is a 2 word instruction, the 
second word is entered after the next colon. 
Whenever the OUT instruction, octal 26, is 
used, the computer goes to a routine that 
reads the data into a buffer and then dumps 
it to the display "as is." This way, the effect 
that different instructions have on the dis- 
play format shown in table 3 can be seen. 
Before requesting an instruction, the com- 
puter polls the ERROR and BR lines and 
outputs an "E" or "B," respectively, if these 
lines are active. Once the ERROR line is set 
it must be cleared with the ECLR instruc- 
tion, but the BR line is reset automatically 
by the program. 

When the program is first entered at 0200 
it initializes the processor by outputting a 
POR pulse and ignoring the first two RDY 
pulses before halting on the third. Halting 
for instruction input is done by bringing the 
HOLD line high. When an instruction is first 
moved to the output port, the HOLD line is 
left high. It is brought down on a separate 
command so that the data on l-| thru lg is 
fully stable before HOLD starts to change. 
The computer senses when it is time for a 
new instruction by monitoring the RDY line 



70 



August 1978 © BYTE Publications Inc 



the electric pencil II 

^^ c 1Q7R Mirhapi Shraver 



TM 



The Electric Pencil II is a Character Oriented 
Word Processing System. This means that text is 
entered as a string of continuous characters and 
is manipulated as such. This allows the user 
enormous freedom and ease in the movement and 
handling of text. Since line endings are never 
delineated, any number of characters, words, 
lines or paragraphs may be inserted or deleted 
anywhere in the text. The entirety of the text 
shifts and opens up or closes as needed in full 
view of the user. The typing of carriage returns 
as well as word hyphenation is not required 
since lines of text are formatted automatically. 



1978 Michael Shrayer 

As text is typed in and the end of a screen 
line is reached, a partially completed word is 
shifted to the beginning of the following line. 
Whenever text is inserted or deleted, existing 
text is pushed down or pulled up in a wrap 
around fashion. Everything appears on the video 
display screen as it occurs which eliminates any 
guesswork. Text may be reviewed at will by 
variable speed scrolling both in the forward and 
reverse directions. By using the search or the 
search and replace function, any string of 
characters may be located and/or replaced with 
any other string of characters as desired. 



When text is printed, The Electric Pencil II automatically inserts carriage returns where they 
are needed. Numerous combinations of line length, page length, line spacing and page spacing allow 
for any form to be handled. Character spacing, BOLD FACE, multicolumn as well as bidirectional 
printing are included in the Diablo versions. Right justification gives right-hand margins that are 
even. Pages may be numbered as well as titled. This entire page (excepting the large titles and 
logo) was printed by the Diablo version of The Electric Pencil II in one pass. 



Now on CP/M 

You've probably seen 
The Electric Pencil in 
action by now. It's the 
most powerful 8080/Z80 
character oriented word 
processor on the market 
today. Michael Shrayer is 
now proud to present the 
new Electric Pencil II. 



NEW FEATURES: !!! CP/M Compatible !!! Disk Operating System 
Supports Four Disk Drives !!! Simple File Management !!! Quick and Easy 
Disk Storage and Retrieval !!! Dynamic Print Formatting !!! Multicolumn 
Printing !!! Print Value Chaining !!! Page-at-a-time Scrolling !!! New 
Bidirectional Multispeed Scrolling Controls !!! New Subsystem with 
Print Value Scoreboard !!! Automatic Word and Record Number Tally !!! 
Cassette Backup Capability !!! Full Margin Control !!! End-of-Page 
Control !!! Non-Printing Text Commenting !!! Line and Paragraph 
Indentation !!! Centering !!! Underlining !!! BOLD FACE !!! 

WIDE SCREEN VIDEO!!! 

Available to Imsai VIO video users for a huge 80x24 character screen ! ! 



HAVE WE GOT A VERSION FOR YOU ? 

The Electric Pencil II operates with any 8080/Z80 based microcomputer that supports a CP/M disk 
system and uses a Imsai VIO, Processor Technology VDM-1, Polymorphic VTI, Solid State Music VB-1B, 
Vector Graphic Flashwriter or any similar memory mapped video interface. Specify when using CP/M 
that has been modified for Micropolis or North Star disk systems as follows: For North Star add 
suffix A to version number, for Micropolis add suffix B to version number, e.g. SS-IIA, DV-IIB. 



Vers. 



Video 



Printer 



Price 



SS-II 


SOL 


TTY or 


similar 


$225. 


SP-II 


VTI 


TTY or 


similar 


$225. 


SV-II 


VDM 


TTY or 


similar 


$225. 


SI-II 


VIO 


TTY or 


similar 


$250. 


DS-II 


SOL 


Diablo 


1610/20 


$275. 


DP-II 


VTI 


Diablo 


1610/20 


$275. 


DV-II 


VDM 


Diablo 


1610/20 


$275. 


DI-II 


VIO 


Diablo 


1610/20 


$300. 



ss 



MICHAEL SHRAYER SOFTWARE 

1253 Vista Superba Drive 

Glendale, CA 91205 

(213) 956-1593 



The Electric Pencil I is still available for non CP/M users: 



coming 
attractions 

Sort & Merge Utility ! ! ! 

The NEC printer package ! ! ! 

The HELIOS Electric Pencil ! ! ! 

Pencil to CP/M file conversion ! ! ! 

CP/M to Pencil file conversion ! ! ! 



Vers. 


Video 


Printer 


Cassette 


Disk Drive 


Price 


SS 


SOL 


TTY or 


similar 


CUTS 





$100. 


SP 


VTI 


TTY or 


similar 


Tarbell 





$ioo. 


SV 


VDM 


TTY or 


similar 


Tarbell 





$100. 


SSN 


SOL 


TTY or 


similar 


CUTS 


North Star 


$125. 


SPN 


VTI 


TTY or 


similar 


Tarbell 


North Star 


$125. 


SVN 


VDM 


TTY or 


similar 


Tarbell 


North Star 


$125. 


DS 


SOL 


Diablo 


1610/20 


CUTS 





$150. 


DP 


VTI 


Diablo 


1610/20 


Tarbell 





$150. 


DV 


VDM 


Diablo 


1610/20 


Tarbell 





$150. 


DSN 


SOL 


Diablo 


1610/20 


CUTS 


North Star 


$175. 


DPN 


VTI 


Diablo 


1610/20 


Tarbell 


North Star 


$175. 


DVN 


VDM 


Diablo 


1610/20 


Tarbell 


North Star 


$175. 



Demand a demo from your dealer ! 



Circle 316 on inquiry card. 



BYTE Augusi 1978 71 



POWER TABLE 


NUMBER 


TYPE 


+5V 


GND 


-4V 


" ICI 


74C04 


14 


7 




IC2 


CD40I3 


14 


7 




IC3 


LM339 


3 




12 


IC4 


MM57I09 


15 




21 


IC5 


LM340T-5.0 










Figure 4: Schematic diagram for interfacing the processor to a computer. The STROBE signal can be any software controlled 
output pulse with a width varying from 200 ns to 50 /us. The rise and fall times are noncritical. All unused inputs in the circuit 
should be grounded to prevent floating voltage problems. All resistors are 0.25 W unless otherwise specified. All resistances are 
measured in ohms. 



72 August 19780BYTE Publications Inc 




BASIC FLOPPY DISK SYSTEM 

• RANDOM ACCESS FILES 

• ANY NUMBER OF FILES MAY BE OPEN (IN USE) AT ONE TIME 

• THE NUMBER OF FILES AND SIZE OF FILES IS LIMITED 
ONLY BY THE SIZE OF THE DISK 

• MERGING FILES REQUIRES NO EXTRA DISK SPACE 

• NO WAITING FOR THE DISK TO RE-PACK 

• LONGER DISK LIFE-MORE EVEN DISK WEAR 

We delivered our first mini-floppy disk system a year and a half ago — 6 months ahead of any other 
6800 based mini system. Since that time, it has earned the reputation of being the most reliable mini-disk 
system available. 

This system comes completely assembled with a disk controller that is plug compatible with the SWTPC 
6800. In fact all our products use the 6800 standard SS-50 (Smoke Signal 50) bus used by SWTPC. The 
cabinet and power supply are capable of handling up to 3 Shugart Mini-Floppy Drives. One drive is included 
in the price of the BFD-68 and others may be added easily at any time. Or you may save money by order- 
ing the dual-drive BFD-68-2 or triple drive BFD-68-3 (pictured). Price: BFD-68 $795, BFD-68-2 $1139, 
BFD-68-3 $1479, SA-400 Drive $355. 

A bootstrap PROM is included on the controller board to initiate the Disk Operating System. Thus, you 
can be up and running from a cold start in just a few seconds. 

SUPER SOFTWARE 

The BFD-68 includes our new expanded disk operating system and disk file handling BASIC interpreter. 
In addition, the BFD-68 is supported by the most complete microcomputer software available today. This 
includes an excellent editor and text processor, several assemblers and a BASIC compiler. 

Send for FREE NEW Computer Products Catalog 
6304 Yucca/Hollywood, CA 90028/(213) 462-5652 



Circle 320 on inquiry card. 



BYTE Augusi 1978 73 



Listing 7: An 8080 familiarization program 
for the MM 57 109 which allows the user to 
execute single commands and observe the 
results. The program will output a prompt- 
ing colon after which the operator can 
input the command to be observed in its 
octal format. 



with the input port. If you have a spare 
interrupt, however, you can connect it to 
the RDY line to free the computer from the 
task of polling the input port while the 
MM57109 is executing an instruction. 

DIGOUT is monitored by the computer 
when processing the MM57109's OUT in- 
struction. It goes high to signify the presence 
of a digit on DO] thru DO4 and must be 
reset by the computer after the digit is read 
in. When reading in digits, the computer will 
also monitor the RDY line to tell when the 
instruction is completed. 

It should be noted that this program was 
written for my personal 8080 system and 
uses memory mapped IO, ie: my IO ports 
are addressed as memory locations. If you 
have a system which uses the 8080 IO ports, 
you will want to substitute IN and OUT 
instructions for LDA and STA, 
respectively." 



r 




v. 



The KIM to S-100 bus 
Interface/Motherboard 

• Combines the power of the 6502 with the flexibility of 

the S-100 bus 

• Attaches to any unmodified KIM 

• Complete interface logic and fully buffered motherboard 

in one unit 

• On-board regulation of power for KIM 

• Eight slots of S-100 compatibility for additional RAM, 

Video and I/O boards, PROM Programmers, Speech 
processors . . . 

• Includes all parts, sockets for ICs, one 100 pin connector, 

and full Assembly/Operating documentation 

♦ Kit $125, Assembled $165 

♦ All units shipped from stock 

FORETHOUGHT PRODUCTS 

P.O. Box 386-F 
Coburg, OR 97401 




■ SOFTWARE LISTING FOR 
I WRITTEN FOR AM 8080 

oaoo 3C Br 

0808 38 01 SO 
0805 0E 04 
0807 0D LOOP 
080S C8 07 08 
O20B 79 

oaoc se 01 so 

080F CD 8F 08 

0818 CD SF 08 

08 IS n 40 NEXT 

0817 38 01 80 

081* CD 8F 08 

081 D 3* 01 80 NEXT* 

0880 17 

0881 17 
0888 17 

0883 38 04 80 

0886 47 

0887 08 fiF 08 
088A 3E 48 
088C CD 10 01 

088F 78 ERROR? 

0830 I 7 

0831 D8 39 08 
0834 3E 45 
0836 CD 10 01 

0839 3E 3A FETCH 
083B CD 10 01 
083E CD 91 08 
0841 CD AI 08 
0844 FE 16 
0846 CA 4C 08 
0849 C3 15 08 



NM57I09 MICROPROCESSOR DRIVER/DEMONSTRATOR 

BY P NELSON 

MVI A.BF ISET POR-l.HOLD-0 

STA I/0«1 I INSTRUCTION • NOP 

NVI C>04 ISHORT TIMING VALUE 

DCRC ITO TIME FOR 

JNZ LOOP I PULSE 

MOV A,C ICLR A 

STA 1/0*1 ISET HOLD. POR-0 

CALL NXTRDY IVAIT FOR RDY PULSE 

CALL NXTRDY J WAIT FOR RDY PULSE 

ORI 40 ISET H0LD-1 SO S7109 

STA I/0#1 I STOPS ON NEXT RDY 

CALL NXTRDY I RETURNS VITH 57109 HALTED 

LDA 1/0*1 IREAD BR, ERROR 

RAL 

RAL 

RAL 

STA 1/0*4 

MOV B.A 

JNC ERROR? 

MVI A. 48 



I BR TO CARRY 

ICLR F.r.'S VITH STROBE 
I TEMP STORE ACC 
J IF NO BRANCH 
(ASCII B 



CALL OUTCHR ICHARACTER DISPLAY 

MOV A,B I RETRIEVE ACC 

RAL I ERROR TO CARRY 

JNC rETCH UN NO ERROR 

MVI A, 45 IASCII E 

CALL OUTCHR ICHARACTER DISPLAY 

MVI A,3A IASCII I 

CALL OUTCHR ICHARACTER DISPLAY 

CALL OCTIN I GET INSTRUCTION CODE 

CALL INSTRCT1SIVE 57109 OPCODE 

CPI 16 I0UT CODE 

JZ OUT J WAS IT AN OUT OP 

JMP NEXT I IF NOT. NEXT INSTRUCTION 



I OUT READS IN CORRECT * OF DIGITS. STOPPING BY SENSING RDY AND 
I THEN DUMPS BUFFER TO DISPLAY IN HEX/BCD 



084C 


81 


oc 


03 


OUT 


LXI 


H 


ITOP OF BUFFER LOCATION 




084 F 


3A 


01 


BO 


NOT YET 


LDA 


1/0*1 


I GET INPUT 




0858 


17 








RAL 




J ROTATE 




0853 


17 








RAL 




1 DIGOUT INTO CARRY 




0854 


08 


4F 


08 




JNC 


NOTYET 


IDIGOUT-O? 




0857 


1 F 






NXTDIG 


RAR 




■RESTORE DIGIT 




0858 


IF 








RAR 




JLOCATION IN ACC 




0859 


77 








MOV 


N.A 


I PUT IN BUFFER 




085A 


80 








DCR 


L 


IDCR POINTER 




08 5B 


32 


04 


80 




STA 


1/0*4 


IRESET DIGOUT F.F. 




085E 


3E 


40 






MVI 


A, 40 


INOV THAT VE ARE OAST OUT'S END 




0860 


38 


01 






STA 


1/0*1 


1 RDY. SET HOLD-I TO STOP AT END OF 


OUT 


0863 


3A 


01 


80 


AGAIN 


LDA 


1/0*1 


IGET INPUT 




0866 


17 








RAL 




■ROTATE RDY INTO CARRY 




0867 


DA 


71 


02 




JC DISPLAY 


■IF DONE. GO TO DISPLAY 




08 6A 


1 7 








RAL 




■ROTATE DIGOUT INTO CARRY 




08 6B 


D8 


63 


08 




JNC 


AGAIN 


■NO DIGIT READY? 




08 6E 


C3 


57 


08 




JMP 




ISTORE DIGIT. GET NEXT ONE 




0871 


3E 


OC 




DISPLAY 


MVI 


A.OC 


■CALCULATE DIGIT 




08 73 


95 








SUBL 


1 COUNT (OC POINTER VALUE) 




0874 


4F 






LISTING 


MOV 


C.A 


ISTORE COUNT IN REGISTER C 




0875 


81 


OC 


03 




LXI 


H 


IBUFFER LOCATION 




0878 


7E 








MOV 


A.M 


IGET 1ST DIGIT 




0879 


E6 


OF 






AN I 


OF 


IGET LOVER 4 BITS 




08 7B 


FE 


OA 






CPI 


OA 






087D 


DA 


82 


08 




JC "0-9" 


IDON.T CHANGE IF 0-9 




0880 


C6 


07 






ADI 


07 


JCONVERT A-F 




0888 


C6 


30 




"0-9" 


AD I 


30 


■CONVERT ALL TO ASCII 




0884 


CD 


10 


01 




CALL OUTCHR 


■DISPLAY CHARACTER 




0887 


8D 








DCR 


L 


IDECR POINTER 




0888 


OD 








DCR 


C 


1DECR COUNT 




0889 


CE 


78 


OE 




JNZ 


MORE 


IDHORE DIGITS TO DISPLAY 




08 8C 


C3 


ID 


OS 




JMP 


NEXT* 


■DO NEXT INSTRUCTION 




1 NXTRDY 


WAITS 


FOR A POSITIVE TRANSITION ON THE RDY LINE AND THEN 




■RETURNS 














08SF 
noQO 


3A 
i i 


°i 


80 


NXTRDY 


LDA 


1/0*1 


IGET INPUT 





0898 17 
0893 DA BF OS 

0896 3A 01 80 NOTRDY 

0899 1 7 
089A DS 

089B C3 96 OE 



RAL 

JC NXTRDY 

LDA 1/0*1 

RAL 

RC 



■ROTATE RDY INTO CARRY 

■GET INPUT 

■ROTATE RDY INTO CARRY 

■IF CARRY IS HIGH.RETURN 



JMP NOTRDY IOTHERVI5E TRY AGAIN 



■OCTIN RECEIVES 8 DIGITS CIT ASSUMES NUMERIC INPUT) AND CONVERTS 
ITO A 6 BIT VALUE IN ACC REPRESENTING A 8 OCTAL DIGIT INSTRUCTION 
■CODE FOR THE 57109. AN INTERRUPT DRIVEN KEYBOARD IS ASSUMED. BUT 
ITHE 3 BYTE FORMAT (EI.HLT.NOP) LEAVES ROOM FOR A CALL INSTRUCTION 
ITO THE USER'S INPUT SUBROUTINE IF THIS IS NOT THE CASE 



089E 


FB 




EI 




■ GET 


089F 


76 




HLT 




■ BYTE 


080A 


00 




NOP 




■INPUT 


08A1 


E6 


07 


ANI 


07 


■ MASK FOR LOVER 


08A3 


17 




RAL 




■ MOVE 


08A4 


17 




RAL 




IDIGIT UP 3 


08AS 


17 




RAL 




■POSITIONS 


08A6 


47 




MOV 


B.A 


ITEMP STORE ACC 


08A7 


FB 




EI 




IGET 


08A8 


76 




HLT 




IBYTE 


08A9 


00 




NOP 




■INPUT 


08AA 


E6 


07 


ANI 


07 


■MASK FOR LOVER 


08AC 


BO 




ORA 


B 


■COMBINE DIGITS 


08AD 


C9 




RET 




I (RETURN) 



IINSTRCT PUTS INSTRUCTION CODE ON II TO 16 WHILE LEAVING HOLD HIGH. 
■IT THEN SETS HOLD TO 0. 



08AE F6 40 
08B0 38 01 SO 
08B3 E6 3F 
08B5 38 01 80 
08B8 C9 



INSTRCT ORI 40 

STA 1/0*1 

ANI 3F 

STA 1/0*1 
RET 



IHOLD-1 VITH OPCODE 

•OUTPUT IT 

IMXB-1 OF HOLD - 

■OUTPUT IT 

■(RETURN) 



74 August 1978©BYTE Publications Inc 



Circle 140 on inquiry card. 



A COMPLETELY REFURBISHED "SELECTRIC" 

ASCII TERMINAL FOR THE SMALL BUSINESSMAN 

OR SERIOUS HOBBYIST. 

The AJ 841 I/O Terminal. 
Now with RS232 interface. 
Now available from dealers. 



Demand for our AJ 841 I/O 
computer terminal has been 
great. And now that we've finally 
added RS 232 interface, it will 
get even greater. So while you 
can still order it direct from us, 
now you can also buy it from 
dealers around the country. But 
act now. Our special 
introductory price of 
$995 will soon 
be raised. 



The AJ 841 features: 

• Choice of Serial RS 232 or 
parallel interface 

• ASCII code 

• 14.9 cps printout 

• High quality Selectric printing 

• Reliable, heavyduty 
Selectric mechanism 



Off-line use as typewriter 

Documentation included 

30-day warranty — parts and 
labor 

Mail order shipments to AJ 
office or direct to you. 




Warranty and service 
available from your local AJ dealer — 
or from AJ offices in : 

Atlanta/Boston/Chicago/Cincinnati/ 
Cleveland/Columbus/Dallas/ 
Detroit/Hackensack/Houston/ 
Los Angeles/New York/Philadelphia/ 
San Jose/Washington, D.C. 

Full warranty information 
available on request. 

Order with coupon — or from 
your local AJ dealer 

For location of your nearest AJ dealer 
call toll-free: 800/538-9721 
(Calif, residents call 408/263-8520). 



HOW TO ORDER DIRECT 
FROM THE FACTORY 

1 . Make cashier's check or money order 
payable to Anderson Jacobson, Inc. and 
mail to: 

Anderson Jacobson, Inc. 
PERSONAL COMPUTER TERMINAL 
521 Charcot Avenue 
San Jose, CA95131 

2. You will be notified when your unit is 
ready for shipment. Allow six to eight 
weeks for delivery. 

3. Shipments direct to you will involve a 
collect freight charge (FOB San Jose) in 
addition to the $35 handling charge. 
Shipments to nearest AJ office include 
freight in the $35 handling charge. 

4. For warranty or repair service, return 
unit to local dealer or to designated AJ 
service location. 

Available only in U.S. 

Circle 10 on inquiry card. 



CLIP AND MAIL WITH ORDER 

Select interface: □ RS232or D Parallel 

Select keyboard: □ EBCD or □ Correspondence 

□ Ship direct to me (freight collect, FOB San Jose) 

□ Ship to AJ office (freight incl. in handling charge) 

Number of units at $995 each $ 



Sales tax at delivery location 

Shipping and handling $35 each 

(excluding San Jose) 

TOTAL 



NAME 



ADDRESS 
CITY 



STATE . 



ZIP- 



PHONE ( 



BYTE August 1978 75 




PERSONAL COMPUTING COLLEGE 
Has the industry's leading speakers 
participating 

Dr. John W. Mauchly, Co-inventor of EIMIAC. 

Robert W. Bemer, The father of ASCII 

Dr. Adam Osborne, Author, of Osborne & Associates 

Robert S. Jones. Publisher & Editor-in-chief, INTERFACE AGE MAGAZINE 

Carl Warren. Senior Editor, INTERFACE AGE MAGAZINE 

Walter Banks, Author, University of Waterloo 

Dr. Christopher A. Titus, Author of the BUGBOOKS 

Carl T. Helmers, Jr., Editor-in-chief, BYTE MAGAZINE 

Christopher P. Morgan. Senior Editor, BYTE MAGAZINE 

Blaise W. Liffick, Senior Editor, BYTE MAGAZINE 

Dr. Robert Suding, of The Digital Group 

Chod Harris, of the Americal Radio Relay League 

David H. Ahl, Publisher, CREATIVE COMPUTING MAGAZINE 

Merl Miller, Author, Publisher dilithum Press/Matrix 

Bill Langenes, Associate Editor, COMPUTER RETAILING 

Jim Warren, West Coast Computer Faire 

Sol Libes, President, Amateur Computer Group of New Jersey 

Richard Moberg, President, Philadelphia Area Computer Society 

Richard A. Kuzmack, President, Chesapeake Microcomputer Club 

Rodnay Zaks, Author, Publisher, SYBEX Inc. 

Howard A. Chamberlin, Jr. (Hal), Author, Inventor, Micro Technology Unlimited 

Larry Steckler, Editor, Radio-Electronics Magazine 

Tod Loofbourrow, Student and Author for Interface Age Magazine 
and Hayden Book Co. 

many-many more. 



80 hours of free seminars 
on subjects such as: 

• Building your own robot 

• Personal computing applications 
for the home 

• The microcomputer controlled 
solar energy home 

• Business applications 

• Educational uses 

• Understanding softwear 

• Ham radio applications 

• Designing your own 
microcomputer system 

• Everything you wanted to know 
about floppies 

• Softwear copywriting and 
trademarks 



SPECIAL at our show: 

• The unveiling of a new, 
complete, easy-to-learn high 
level language for micro- 
computers. 

• A complete series of seminars 
aimed at the small business 
man presented by the 
INTERFACE AGE speaking team. 

• Computer music. 



THE AMAZING MICRO-MOUSE MAZE CONTEST 

Official East Coast Runoffs being held Fri., Sat., 
Sun. at the show. Sponsored by IEEE Spectrum. 

A contest of self-contained microcomputer 
controlled mice designed to negotiate a complex 
maze. 

PHILADELPHIA CIVIC CENTER 

August 25. 26. 27th at the Philadelphia Civic Center 




76 BYTE August 1978 



Circle 302 on inquiry card. 



THE 1st FULL DAY INDUSTRY TRADE SHOW AUG. 24th 



> Personal 
C Computing 



LARGEST SHOW EVER HELD! 

300 BOOTHS 

Open Only To: 

EXHIBITORS 

DEALERS — RETAILERS 

INDUSTRY REPRESENTATIVES 

EXHIBITOR GUESTS 



PHILADELPHIA 

Personal Computing and Small Business Computer Show 

PHILADELPHIA CIVIC CENTER £££&,„, 



PRE 



P.E 



G\Stt* 



Q • A Full Day To See Your Suppliers, Dealers, Distributors 
fO" •New Products and New Manufacturers 

• Plus Three Additional Days 

• Aug. 25th-27th, Personal Computing Show 




I Distinctive Badge for Admission to Aug. 24th Trade Show 

I Special Seminars and Meetings 

► Admission to Personal Computing Show Aug. 25th-27th 

i Hotel and Philadelphia Information Package 

(Newsletter 



See our ad on page 151. 



I | Send Dealer-Retailer 

Registrations at $15.00 each 

I I Send Exhibitor Information 



COMPAMY NAME. 
NAME 



Amount Enclosed $ 



STREET. 
CITY 



.STATE. 



.ZIP. 



PHONE. 



Please include your business card 
or Letterhead. 



Send To: 

PERSONAL COMPUTING Inc. 

Rt. 1 Box 242 • Mays Landing, N. J. 08330 



609—653-1188 



BYTE 



Circle 302 on inquiry card. 



BYTE Augusl 1978 77 



PASCAL 

A Structurally Strong Language 



Stephen R Alpert 

Worcester Polytechnic Institute 

Worcester MA 01609 



PASCAL forces the user 
to think logically and 
plan out the program. 



Most PASCAL users con- 
sider programs better if 
they have fewer labels. 



People should be able to communicate 
their ideas to a computer in a language that 
people understand; not simply in a language 
they know. Additionally, if the computer 
can be made to understand the same language 
easily, all the more reason to consider its 
use. Such a language is PASCAL. This lan- 
guage, perhaps more than any other com- 
mon language, is the easiest to understand 
and more importantly, allows a straight- 
forward presentation of most algorithms. 
Although many languages also make this 
claim, few have the overwhelming and 
energetic support from collegiate computer 
science departments. Let's consider some 
of the language features of PASCAL. 

This language is equipped with a precise 
syntactical description that defines both 
how programs may be constructed and 
how PASCAL compilers should function. 
There is a required form for programs, 
statements within programs, and data 
operated upon by programs. At first glance, 
a naive user may rebel at this apparent lack 
of freedom: (eg: BASIC allows a dimension 
statement virtually anywhere in a program). 
One soon learns that this structure admits 
very general programs and in no way limits 
the programmer in exercising his talents. On 
the contrary, it forces the user to think 
logically and plan out the program. 

A program written in PASCAL may 
utilize the free format form of programs that 
is conducive to structured programming. 
Unlike line oriented source languages, 
PASCAL allows extra spaces, tabs and car- 
riage controls to be inserted anywhere with- 
out significance except in the middle of 
identifiers or character strings. Comments 
may be inserted wherever spaces may be 
inserted and are delimited by "(* . . . *)". 
A program is made up of two parts, a 
heading and a block. The heading contains 
the name of the program and lists its param- 
eters. The parameters are somewhat im- 
plementation dependent but normally 



specify the names of file pointers from 
which the default input is received and to 
which output is sent. A typical heading is 

program parser (input, output) 

A block consists of six separate segments or 
sections of a program. All but the last part 
are optional. These are: 

• Label declaration section 

• Constant declaration section 

• Type declaration section 

• Variable declaration section 

• Procedure and function declaration 
section 

• Statement section 

Labels in PASCAL identify statements 
to which control may be transferred. Labels 
are numeric; more specifically, unsigned 
integers. Not every statement requires a 
label. In fact, most PASCAL users consider 
programs better if they have fewer labels. 
At first glance, these declarations might 
seem a nuisance, but they force the user 
to think about the entire program before 
sitting down at a terminal. 

The constant declarations allow a user to 
create synonyms for constants used in the 
program. Thus 



const 



pi=3. 141592; 
e=2. 7182818; 



defines the constants "pi" and "e" for use 
throughout the program. Clearly, it no 
longer is necessary to type 3.141592 in the 
several places required by a program. Addi- 
tionally, one may name character strings 
as well 

const title='matrix inversion program v01'; 

The type declaration section allows creation 
of user defined named data types. This 
will be discussed in some detail later. PASCAL 
has four predefined data types: integer, real, 
Boolean, and character. Most versions of 
BASIC support the first three' types and 



78 August 1978 ©BYTE Publications Inc 



ARTEC CRAFTSMANSHIP HAS CREATED 




The First 
Truly Silent 
Motherboard 



Noise in your bus lines means errors 
in your programs. The Artec shielded 
Motherboard totally eliminates noise. 

At 4MHz, the Artec shielded 
Motherboard is free from spurious 
noise. No ringing in your bus lines. 
No errors in your programs. 

This Motherboard offers you 
engineering and craftsmanship 
never before available in the small 
computer field. Outstanding as 
either a replacement for your 
present Motherboard or as the 
heart of a new system. Con- 
sider these features: 

■ Veth inch thick — more than twice as thick 
as most Motherboards. 

■ Totally shielded — all holes plated 
through; full bus terminations 

■ Fits easily into any stan- 
dard chassis. 

■ Masterite edge 
connectors — the 
finest quality con- 
nectors available. 

■ Reflowed solder circuitry. 

■ No soldering required. 

■ Designed for the S-100 bus. 

The Motherboard price is: $150(kit) 

$190 (ASSEMBLED) 

Five years of experience in every card 

For five years, Artec has worked hard to de- 
velop a complete line of custom, prototype and 
off-the-shelf printed circuit boards. And in five 
years of tough industrial use, Artec boards have 
proven themselves among the most reliable 
boards available anywhere. 

NEW! DEC® and Heath Compatible LSI 
Boards 

The new Artec WW11 lets you adapt or add 
onto your DEC LSI-11 or Heathkit LSI mini- 

computer. Can accom- 
modate 14 and 16 pin 
DIPs plus all necessary 
passive components. 
FULL CARD $75 

(10.45" x 8.4") 

HALF CARD $35 

(5.225" x 8.4"; 



® Trademark of Digital Equipment Corporation 

Order today! 

Put an Artec board to work for you. Use your 
Mastercharge or Visa. Or just send along a 
money order. We can accept only U.S. currency. 
Please include $3 handling on all orders. Califor- 
nia residents add 6% sales tax. 



Please send me: (include quantity) 




Shielded 
Motherboard 



Full WW11 
Card 



Half WW11 
Card 



D I've enclosed a money order for $ 
□ Mastercharge □ Visa 



(number) 



(exp. date) 



Name 

Address 

City 

Calif. Res. add 6% sales tax. End. $3 handling. ?0% discount for students and 
computer club members. (Please enclose name of club or school) 



State 



Zip 



dRTGC ei£CTROMia, IMC 

Artec Electronics, Inc. -605 Old County Rd.«San Carlos, CA 94070 
(415) 592-2740 



Circle 20 on inquiry card. 



BYTE August 1978 79 



Arrays may be multi- 
dimensional and include 
arrays of arrays. 



Items of different types 

may be aggregated into a 

single entity that can be 

stored as one logical 

unit. 



strings. Data of type character is very con- 
venient in a microprocessor environment 
since a byte is the basic unit of memory. 
The variable declaration section requires 
the naming of all identifiers that will be used 
as variables within this block. FORTRAN, 
BASIC, APL, and LISP do not adhere to this 
convention. Again PASCAL forces the user 
to think about what he wants to say before 
he says it. A sample variable declaration 
section might be 

var x,y: integer; 
cost: real; 
flag: boolean; 

PASCAL'S design allows the user to combine 
the utility of type declarations and variable 
declarations into data forms that would 
shame BASIC and FORTRAN. We have 
already seen PASCAL'S predefined scalar 
variable types above. These are actually 
known as simple types. 

Another simple type is the subrange type. 
Often a variable in a program may be ex- 
pected to take on values only from a subrange 
of a simple type, say integers. For example 

var asiz: 1 ..1 00; 

meaning "asiz" will be an integer whose 
values should lie between 1 and 100. Note 
that the compiler might choose to store 
"asiz" as a byte rather than a word if it was 
efficient enough to do so. Alternatively, if 
several variables are of the same range, a 
type statement could have been used 

type lsiz=1..100; 
var asiz, bsiz, f1 :lsiz; 

Another simple type is the symbolic 
scalar type. This feature permits identifiers 
to be used in place of a sequence of integers, 
greatly enhancing the readability of the 
program. Suppose a program needed to 
represent the months of the year as a vari- 
able associated with some billing informa- 
tion. The approach in BASIC would be to 
use the sequence 1, 2, ...,12. PASCAL 
could use the subrange type 1 . . 12 or better 

type 

months = (jan, feb, mar, apr, may, jun, 

Jul, aug, sep, oct, nov, dec); 
var billmonth,duemonth:months 

In the statement section of a program, 
"billmonth" may be assigned one of the 
symbolic scalars from "months" or tested to 
see how its value compares with "due- 
month." There are several functions avail- 
able that operate on symbolic scalars, for 
example, ord(billmonth) would yield a 
number between and 11 indicating the 
position of that month in the list "months." 

Simple types are part of a more general 
data description called a type. Types include 



pointers which are used when dynamic data 
storage is referenced, file pointers which are 
used to reference secondary data storage, 
and arrays which are used with vector data 
storage. An example of an array declara- 
tion is 

var cost: array[months] of real; 

Notice that this array will be indexed, or 
subscripted, by "months." In general, 
arrays may be indexed by any simple types, 
may be multidimensional, and may be of 
any type, including arrays of arrays. 

Two additional types set PASCAL in a 
class by itself; these notions allow powerful 
algorithm descriptions. The set type allows 
user manipulation of sets. Consider 

var special: set of months; 

The union, intersection, and set difference 
operators as well as relational operators may 
be applied to sets. A variable of scalar 
type may be tested for membership in a set 
of the same scalar type, for example 

if billmonth in special then. . . 

The last type is the record type. Items of 
different types may be aggregated into a 
single entity that can be stored as one logical 
unit, for example as one element of an 
array. 

type 

customer = record 

name:array [1..20] of char; 
bal,bal30:real; 
datedue:daterec 
end; 
daterec = record 

day: 1.. 31; 
mo:months; 
year: integer 
end; 
var 

database: array [1.. 100] of customer; 

To reference fields of a record, the record 
name followed by a period, followed by the 
field name is used. Hence the over 30 day 
balance of customer 12 is "database[12] . 
bal30" and the day of the due date of the 
current bill of customer 27 is "database [27] . 
datedue.day." The full impact of record 
types cannot be explained in this short 
article; they must be used to be appreciated. 
One advantage of records is that items may 
be logically grouped together rather than 
stored in parallel arrays. 

Procedure and function definitions would 
follow next in a program. They may be 
recursive and permit parameter passing in a 
style somewhat similar to ALGOL. Because 
of the position in a program of these declara- 
tions, procedures and functions may 
reference globally any variables or types 
defined in the main program. The body of a 



80 August 1978 © BYTE Publications Inc 



tft 



BUSINESS SOFTWARE FOR MICROCOMPUTERS 

IS HERE— AT LAST 



Osborne & Associates is publishing its business systems in book form. These 
systems represent five years of development and testing by O&A programmers, 
and the books include another year's worth of extensive and detailed documenta- 
tion. 

What systems are we selling? 

1. PAYROLL WITH COST ACCOUNTING — available now, on display at 
your local computer store. 

2. ACCOUNTS PAYABLE AND ACCOUNTS RECEIVABLE — should be 
published by July 30. 

3. GENERAL LEDGER — will follow A/P AND A/R, probably published in 
September. 

Each book sells for $15, and includes source listings in Wang BASIC, program 
and system documentation, and user's manual. Each is a complete package by it- 
self, or all three may be implemented together to form a complete system with 
interdependent files. 

And if Wang BASIC won't work, or you don't know programming, or you'd 
rather not key in thousands of words of source code*, take a look at the list of 
consultants who have adopted O&A programs, converted them to run on many 
popular systems, and are waiting to hear from you. 
*Wang listings available from Osborne & Associates on cassette or hard disk. 

GOOD NEWS FOR CONSULTANTS, COMPUTER STORES AND SYSTEMS 

HOUSES 

Osborne & Associates is converting its business systems from Wang BASIC — as it was originally 
published — to CP/M C-BASIC, which runs on most floppy disk-based microcomputer systems. 
The disks for each book sell for $250. Once you buy the floppy disk you can copy it, resell it, change 
it or use it. We place no restriction on the magnetic surface; we copyright only the printed word in 
our books. 

We will only sell the CP/M magnetic surface to consultants, computer stores and systems houses. 
Osborne & Associates prefers to write and sell books, not customize the programs or answer the 
end user's questions. PAYROLL should be available on CP/M in July — call us for exact 
availability and more policy information. 

If you are an end user, write or call us. We will put you in touch with your closest dealer. 



BASIC Business Program Conversions 

Alpha-Micro system: 

Scotl Brim, President 

COMPUTER SYSTEMS FOR BUSINESS. INC. 

3.100 Sirius Avenue. Las Vegas. NV 89102 

Digital Group system: 
John Musgrovc 

MUSGROVE ENGINEERING 
9547 Kindletree Drive. Houston. TX 770411 

Mils 4.1 BASIC: 

William K. Haines 

ANACOM GENERAL CORPORATION 

1160 East Ash Avenue. Fullerlon. CA 921.31 

Microsoft disk BASIC: 
Dan Kindred 
GNAT COMPUTERS 
7895 Convoy Street 
San Diego. C A 921 I 1 

Want! BASIC on floppy disk: 

Richard M. Armour 

ATLANTIC COMPUTING AND CONSULTING 

1104 Sparrow Road 

Chesapeake. VA 2.1.125 

Vector Graphic. Polymorphic. Southwest, 
Cnimemco and Noval systems: 

E. Allen Whedon. President 

COMPUTALL CORPORATION 

2740-K South llarhor Blvd. 

Santa Ana. CA 92704 

C-BASIC with CP/M disk, and Wang 
BASIC on cassette or hard disk: 

Mary Borehers 

OSBORNE & ASSOCIATES, INC 

P.O. Bos 2036 

Berkeley. CA 94702 

Dec (PDP-11): 

Gregory DeRosa 
MICRO-BASE ASSOCIATES 
.1713 Windward Way -204 
Columbus. Oil 43204 

MICROFILE: 

Clarence Malloy 

COMPUTER ELECTRONIC MODES. INC 
1098 S. Milwaukee Avenue. Suite 20ft 
Wheeling. IL ft0090 

Texas Instruments TMS99II0 
MOS Technology 65112: 

David Michael Mvers 

TULIP ASSOCIATES 

I' O. Box T 

llughesville. MD 206.17 



These prices effective July 1, 1978. 



6001 Volume — The Beginner's Book 



2001 Volume I — Basic Concepts 



3001 A Volume I 



- Some Real Products 



4001 8080 Programming for Logic Design 



5001 6800 Programming for Logic Design 



7001 Z80 Programming for Logic Design 



31003 8080A/8085 Assembly Language Programming 



32003 6800 Assembly Language Programming 



21002 Some Common BASIC Programs 



22002 Payroll With Cost Accounting 



23002 Accounts Payable and Accounts Receivable 



PRICE 



$ 7.95 



$ 8.50 



$15.00 



$ 8.50 



$ 8.50 



$ 8.50 



$ 8.50 



$ 8.50 



$ 8.50 



$15.00 



$15.00 



QTY 



• 6V2%, SF Bay Area residents only 
•6%. California residents outside SF Bay Area 

• Payment by check or money order 

must be enclosed for orders of 
10 books or less. 



TOTAL 

Sales Tax 
(Calif, residents only) 

Shipping Charges 
TOTAL AMOUNT ENCLOSED 



AMT 



eft 



OSBORNE & ASSOCIATES, INC. 
P.O. Box 2036 DEPT. Ill 
Berkeley. California 94702 



(415) 548-2805 
TWX 910-366-7277 



CITY 



STATE 

SHIPPING CHARGES 



ZIP PHONE 

Shipping for large orders to be arranged. 

ITJ All foreign orders, $3.00 per book, for air shipment 

D 4th class $0.35 per book (allow 3-4 weeks within USA. not applicable to 

discounted orders) 
D $0.75 per book. UPS (allow 10 days) in the U.S. 

□ $1.50 per book, special rush shipment by air in the U.S. 
Please send information on: 

D Becoming an O&A dealer 

□ School discounts 

D List of foreign distributors 

•This book is scheduled to be published during 1978 
Please notify me when it is available: 

D 24002 General Ledger 



F9 



Circle 293 on inquiry card. 



BYTE August 1978 81 



procedure or function is identical to the 
body of a program; hence, procedures may 
be defined within procedures, and so on. 
Any variables defined within procedures or 
functions are considered local to the pro- 
cedure and are unique to each invocation of 
the procedure. The sample program in 
listing 1 has several examples. 

The statement portion of a program is 
called a "compound." A compound is a 
sequence of the keyword begin, any num- 
ber of statements separated by semicolons, 



Listing J: The Polish "compiler" listing. Notice that PASCAL does not con- 
strict the format of the program line. Indentation allows the program blocks 
to be easily separated from each other and makes the program easier to read. 

PROGRAM PARSEdNPUT, OUTPUT), 

(♦PROGRAM PARSES SIMPLE ARITHMETIC EXPRESSIONS 
INTO THEIR RESPECTIVE POLISH CODE IT DOES 
THE PROPER TYPE CONVERSIONS NECESSARV FOR 
REAL AND INTEGER EXPRESSIONS ACCORDING TO 
THE FORTRAN CONVENTION: 
REAL A-H, 0-Z 
INTEGER: I-N 
VARIABLES ARE ONE LETTER LONG*) 
LABEL 99; (*FOR ERROR RESTART*) 
CONST 

DONTCARE='?'i OMARKERS FOR CODE GENERATOR*) 
MAXPC=108; (*MAXIMUM CODE SPACE*) 
TVPE 

CODESPflCE = l. . MAXPC; (*ADDRESS SPACE*) 

ATTR=(NDNE, INT, REA); ( *ATTRIBUTES OF OPCODES AND EXPRESSIONS*) 

LEXTY=<ADDOP, MULOP- LPAREN, RPAREN, IDENT, EOL); 

(♦THESE LEXEMES FOR INPUT ASSUME A NON-HOSTILE USER*) 
INSTRUCTION=RECORD 

OPC:CHAR; (*OPCODE*> 
ITYPE: ATTR; (*OPCODE TVPE*) 
ADR: CHAR (*NAME OF IDENT*) 
END; 
VAR 

CODE: ARRAVtCODESPACE] OF INSTRUCTION; (*MHERE CODE GOES*) 
PC: CODESPACE; (*PC OF CURRENT INSTRUCTION*) 
GATTR:ATTR; (*GLOBAL TVPE OF EXPRESSIONS*) 
CH: CHAR; (*CURRENT INPUT CHARACTER*) 

CHTYPE:ATTR; (*CURRENT CHARACTER ATTRIBUTE IF IDENT*) 
LEX: LEXTY; (*LEXEME OF CURRENT INPUT*) 
BFR: PACKED ARRAY [ 1. . 80 } OF CHAR; (*INPUT BUFFER*) 
BP: INTEGER; (*CHARACTER BUFFER POINTER*) 
PROCEDURE SCAN; (*PROCESS NEXT INPUT CHARACTER*) 
BEGIN 
REPEAT 

BP: =BP+1; 
CH: =BFRCBP3 
UNTIL CHtt' '; 

<*WORRY ABOUT END OF LINE*) 
IF ORD(CH)=0 
THEN LEX: =EOL 
ELSE 

IF CH IN CH'. . 'Z' ] 
THEN 
BEGIN 

LEX: =IDENT; 
IF CH IN [ 'I'. . 'N'] 
THEN CHTVPE: =INT 
ELSE CHTYPE: =REA 
END 
ELSE 

CASE CH OF 



'(': LEX 


=LPHREN; 


' ) ' : LEX 


=RPAREN; 


'♦', '-' 


LEX: =ADDOP 


'*', '/' 


LEX: =MULOP 


END 




END (*OF SCAN*); 




PROCEDURE ERROR; 




BEGIN 




WRITELNC ':BP+1, 


'T ERROR'); 


GOTO 99 




END (*OF ERROR*); 





(♦COMPENSATE FOR USER PROMPT*) 



and the keyword end. The program ends 
with a period. Each of the statements with- 
in a compound may be one of a variety of 
different kinds of statements. Assignments, 
like 

database[i+k] .bal:=total 

are the most common statements. PASCAL 
supports a large number of control state- 
ments which give the language its structure. 
PASCAL has a looping control similar 
to that of standard BASIC but the step or 
increment may be only +1 or —1. The for 
statement causes a single statement, which 
could be quite complex, to be executed 
some number, including zero, times. For 
example 

for ind. =1 to 100 do 
begin 

due:=1 .006*database[ind] .bal; 
databaselind] .bal:=0.0; 
sum:=sum+due; 
databaselind] .bal30: = 
1.006* databaselind] .bal30+due 
end 

This segment shifts the balance 30 days, 
adds some interest charge and accumulates 
a sum of the recently aged balances. If in 
a for statement, the increment were to be 
— 1, then the keyword downto would re- 
place the keyword to. 

PASCAL supports both simple condi- 
tional and full conditional statements; that 
is 

if <condition> then <statement> 

and 
if <condition> then <statement> 
else <statement> 

Any "dangling else, an else which follows a 
sequence of "if . . . then if . . . then . . .," 
is paired with the innermost if. 

When working with records, partial ad- 
dressing can be done by using the "with" 
statement. This allows the fields of a record 
to be referenced as variables. The previous 
example then becomes 

for ind: = 1 to 100 do 
with databaselind] do 
begin 
due: = 1.006*bal; 
bal: =0.0; 
sum:=sum+due; 
bal30: = 1.006*bal30+due 
end 

Three additional control statements are 
the while, repeat, and case statements. The 
while statement allows a given statement 
to be executed as long as some Boolean 
expression is true (the condition is tested 
first). 

while <condition> do < statement^ 

The repeat statement allows one or more 



82 August 1978 © BYTE Publications Inc 



Dynabyte builds 
confidence into 
my computer." 







,, 





Plug-in-and-run performance takes the uncertainty out of 
owning a computer. That's the kind of computer products 
Dynabyte builds. 

Confidence in your computer is increased because you know 
that Dynabyte S-100 boards are factory assembled by trained 
technicians, burned in for 72 hours at elevated temperatures and 
continuously tested for three days. 

That was true of the industry's first assembled and tested 16k 
dynamic RAM from Dynabyte, and it continues with all the other 
products from Dynabyte. 

Once you plug Dynabyte boards in their careful design, 
factory prime components and quality construction keep them 
running. Dynabyte backs them with a one year warranty — the 
longest in the industry. 

Incompatability is coming to an end. Dynabyte's 16k and 32k 
static RAMs come with access times of either 250ns for Z-80A 
processors or 450ns for 8080 and 8085 chips. You can use the 



16k static RAMs with Alpha Micro or Cromemco bank switching 
memory expansion techniques. 

Computer users are so confident of Dynabyte's 16k dynamic 
RAM they have made it the most widely used S-100 dynamic 
memory in the world. 

If you intend to become a proficient data processor but 
instead are unhappily debugging your system, or want to avoid a 
lot of debugging, then Dynabyte will be a great choice. 

As you spend less time monkeying with hardware and more 
time computing, you'll become more confident of your abilities 
and proud of your accomplishments. Isn't that what owning a 
computer is all about? 

Tell your computer retailer with confidence that you want 
Dynabyte boards — the plug-in-and-run performers. 

1005 El well Court, 
Palo Alto, CA 94303. 
(415) 965-1010. 



DunanuTE 




'. nEuuHiiiiiiiifrnnniiiTriiii i 



32k Fully Static RAM. 250ns or 450ns; 4k 
boundary addressing; no DMA restrictions; full 
Schmitt trigger buffering; no wait states; 
complete S-100 compatibility; conservative 
thermal design includes eight regulators and 
heat sinks. 250ns, $995. 450ns, $925. 

16k Fully Static RAM. 250ns or 450ns; bank 
select is provided and is compatible with most 
popular schemes for memory expansion beyond 
64k including Alpha Micro and Cromemco 
systems; 4k block addressing along 4k 
boundaries; write protect with alarm for each 4k 
block; full Schmitt trigger buffering. 250ns, $555. 
450ns, $525. 



Jlfljl » ,••911 




16k Dynamic RAM. The industry's most 
popular S-100 dynamic RAM. Self-contained 
refresh logic is transparent to the 8080 processor 
and never generates a WAIT state. 1MHz direct 
memory access, 16k addressing. The Original 
Great Memory by Dynabyte, $399. 

Naked Terminal. 80 character x 24 line = 
1 920 character display capacity. Mot just a video 
interface but a full terminal; plug into a 
mainframe with keyboard and monitor and save! 
Upper and lower case; black/white or 
white/black; block mode editing; addressable 
cursor; half and full duplex; no software support 
required; addressable status and I/O ports. $350. 



Circle 1 10 on inquiry card. 



BYTE August 1978 83 



Listing I, continued: 



■:*PC OF FIX LOCATION OF OPERAND 1* 
<*CURRENT OPERATOR*) 
OHTTRIBUTE OF OPERAND 2*) 



DON'T AGREE*) 



PROCEDURE GENCODECF: CHRR; IflTTR; R:CHRR); 
BEGIN PC=FC+1; 

IF POMRXPC 

THEN BEGIN URITELNC ' OVERFLOW ) ; ERROR END; 
WITH CODECPC] DO <*INDEX INSTRUCTION*) 
BEGIN OPC: =F; ITVPE: =1; RDR: =A END 
END <*OF GENCODE*); 
PROCEDURE LISTCODE; 
VAR LPC: CODESPRCE; 
BEGIN 

FOR LPC: =1 TO PC DO 

WITH CODECLPCn DO BEGIN <*INDEX INSTRUCTION*) 
CRSE OPC OF 

'+' : WRITE < 'HDD'); 
'-' : WRITE'. 'SUB'); 
'9' : WRITE < 'NEG'); 
'*' . WRITE < 'MUL' ); 
'/' : WRITE('DIV'); 
'F' : WRITE< 'FLOAT'); 
'P' : WRITE<'PUSH') END; 
IF OPCtt'F' 
THEN 
BEGIN 

IF ITYPE=INT THEN WRITE<'I'> ELSE WRITE('R') 
END; 
IF OPC='P' THEN WRITELN<CHR(11B), HDR) ELSE WRITELN 
END (*OF WITH AND FOR*) 
END <*OF LISTCODE*); 
PROCEDURE FIXUPCAX: CODESPACE 
LOP: CHRR; 
LRTTR: RTTR); 
VRR TPC: CODESPACE; 
BEGIN 

IF GRTTRttLATTR C*TVPE 
THEN 
BEGIN 

IF GATTR=INT C*FLORT OPERAND 2*) 

THEN BEGIN GENCODE < 'F ', HONE, DONTCRRE ); GfiTTR: =RER END 
ELSE <*HRVE TO FLOAT OPERAND 1, MOVE CODE UP*) 
BEGIN 

IF PC=MRXPC THEN BEGIN WRITELN< 'OVERFLOW' ); ERROR 
FOR TPC: =PC DOWNTO RX DO CODECTPC-H] . =CODE[TPC3; 
PC:=PC+1; <*TOOK RNOTHER WORD*) 
CODECRX:. OPC: ='F' <*FLORT OPERAND 1*) 
END 
END; 
GENCODECLOP, GATTR, DONTCRRE) (♦GENERRTE OPERATION*) 
END <*OF FIXUP*); 
PROCEDURE EXPR; <*HERE IS RLL THE WORK*) 
VRR 

LOP: CHRR; <*CURRENT RDDOP* > 
LRTTR: RTTR; <*ATTRIBUTE OF OFEPRND S* ) 
RXPC: CODESPACE; <*WHERE FLORT OF OPERAND 1 GOE 
PROCEDURE TERM; 
VRR 

LOP: CHAR; <*CURRENT MULOP*) 
LRTTR: RTTR; <*RTTRIBUTE OF OPERRND 2*) 
RXPC: CODESPRCE; <*WHERE FLORT OF OPERRND 1 GOES 
PROCEDURE FACTOR; 
BEGIN 

IF LEX=IDENT ^IDENTIFIER*) 
THEN 
BEGIN 

GATTR: =CHTVPE; 
GENCODEC'P', GATTR, CH); 
SCAN 
END 
ELSE 

IF LEX=LPRREN 
THEN 
BEGIN 

SCRN; EXPR; 

IF LEX-RPAREN THEN SCAN ELSE ERROR 
END 
ELSE ERROR <*JUNK INPUT*) 
END <*OF FfiCTOR*);" 
BEGIN OOF TERM*) 
FACTOR; 

WHILE LEX=MULOP DO 
BEGIN 

LRTTR: =GATTR; LOP=CH; 

flXPC:=PC+l; OSAVE ADDR OF NEXT INSTRUCTION*) 
SCAN; FACTOR; 
FIXUPCAXPC, LOP, LATTR) 
END 
END <*OF TERM*); 
BEGIN OOF EXPR*) 

IF LEX=RDDOP OLERDING SIGN*) 
THEN 
BEGIN 

LOP: =CH; SCAN; TERM; 

IF LOP='-' THEN GENCODE!. '9', GATTR, DONTCARE) 
END 
ELSE TERM; 



WHILE LEX=RDDOP DO 
BEGIN 

LRTTR: =GRTTR; LOP: =CH; 

RXPC=PC+1; OSRVE RDDR OF NEXT INSTRUCTION*) 
SCRN; TERM; 

FIXUP'.RXPC, LOP, LRTTR) 
END 
END <*OF EXPR*?; 
BEGIN OOF MRIN PROGRRM*) 

WHILE TRUE DO OINFINITE LOOP*) 
BEGIN 
99: REPERT 

WRITEC '>>'); OPROMPT USER*) 
BP: =0; OGET INPUT LINE*) 
WHILE NOT EOLN DO 
BEGIN 

BP: =BP+1; READ^BFRCBP]) 
END; 
RERDLN ORESET EOL INDICATOR*) 
UNTIL BPftl; OGET A NON-EMPTY LINE*) 
BFRCBP3: =CHR<0); C* <NULL> FOR EOL*) 
PC:=0;BP:=0; OSCRN FROM THE BEGINNING*) 
SCRN; 

EXPR; ODOES RLL THE WORK*) 
IF LEX=EOL THEN LISTCODE ELSE ERROR 
END 
END. 



IF NEEDED* 



IF NEEDED*) 



statements to be executed until a condition 
becomes true (the condition is tested last). 

repeat <statement> { ; 
<statement> } until <condition> 

The brackets denote a portion that may 
occur zero or more times; for example 

ind:=0; 
repeat; 

ind:=ind+1 
until (database[ind] ,bal>100.0) or 
(ind=100) 

This will find the first customer whose 
balance is greater than $100, if one exists. 

The case statement consists of an ex- 
pression, known as the selector, and a list 
of statements, each labelled by one or more 
constants of the type of the selector. The 
statements whose constant is equal to the 
current value of the selector is executed. 
Some versions of PASCAL admit subranges 
for labels and an else or otherwise clause 
within a case statement. 

case databaselind] .datedue.mo of 
jan,feb,may: <statement 1>; 
mar,jun,jul: <statement 2>; 
oct.dec: <statement 3> 

end 

Statement 1 will be executed if the due 
month is January, February, or May, and so 
on. Notice that no statement is executed 
if the month is April, August, September, 
or November. Of course, the nesting of such 
control statements is permissible and allows 
much more complex control structures to 
be implemented. 

The reset and rewrite statements initialize 
input and output channels, respectively. 
Some versions of PASCAL do not require 
these for the default channels input and 
output. The IO commands are designed at 
two levels. To move primitive data to and 
from IO devices or files use the commands 



84 



August 1978 ©BYTE Publications Inc 



Rackets or 
Racquets? 




Software systems from 
TSC serve — whether 
your racket is business 
or pleasure. TSC's 
software is designed 
for business and 
industrial uses as well 
as for recreation. Off 
the job or at work, TSC 
software serves 
your needs. 

Assembly Language Programs 

(Includes Source Listings) 

With Object Code Cassette 

SL68-5C 6800 Space Voyage $ 1 8.95 
SL68-24C 6800 Text Editing System $30.45 
SL68-26C 6800 Mnemonic 

Assembler $30.45 
SL68-29C 6800 Text Processing 

System $38.95 

With Object Code Paper Tape 

SL68-24P 6800 Text Editing System $3 1 .50 
SL68-26P 6800 Mnemonic 

Assembler 
SL68-29P 6800 Text Processing 

System 
SL80-10P 8080 Text Editing System 
SL80-1 IP 8080 Text Processing 

System 



$31.50 

$40.00 
$37.50 

$41.00 



Cassettes are in the Kansas City Standard 
format. Many other programs are 
available. Send 25C for a complete 
catalog. 



Technical Systems 
Consultants, Inc. 

Box 2574 

W. Lafayette, Indiana 47906 
317-423-5465 
Specialists in Software & Hardware for Industry & the Hobbyist 

Circle 370 on inquiry card. 




To Order: Include 3% postage, $ 1 .00 
handling on orders under $10.00, and 
Indiana residents add 4% sales tax. 
Check your dealer! 



TSC Monthly Feature: 

8080 Mnemonic Assembler 

This is the most complete resident non-macro 
assembler available for the 8080 and the com- 
plete source listing is included! The assembler is 
fully Intel compatible except for logical expression 
operators. All standard pseudo-ops are supported 
plus features such as paging, titling, spacing, 
listing suppression, sorted symbol table, Intel 
format tape generation, hex or octal output, 
decimal line numbers, auto field formatting, hex, 
decimal, octal or binary constants, and more. 
5.5K of RAM is required beginning at 1000 hex, 
plus source and symbol table space. An object 
code paper tape in Intel ASCII format is available. 

SL80-12 8080 Mnemonic Assembler $25.00 
SL80-12P Assembler with paper tape $34.00 



BYTE August 1978 85 



EXPR 



rOi 



-i 







FACTOR 




-•/variable) 




Figure 7: Syntax diagrams for generation of valid expressions. The diagram 
"expr" is entered from the left and calls term. Term calls "factor" which may 
call expr, etc. This model assumes that the only operations are addition, 
subtraction, multiplication and division. 



put or get respectively. To input or output 
an entire line or set of data we use read, 
readln, write, and writeln which arc similar 
to FORTRAN 10 commands. Formatting is 
done within the commands themselves. The 
read command will only input the necessary 
information (even if it must read several 
lines) while readln additionally discards 
the remainder of the current input line. The 
output commands, write and writeln, 
operate in an analogous fashion for output. 

A significant example is now in order. 
Consider the problem of compiling an 
arithmetic expression. To greatly simplify 
the problem, assume all variables are one 
letter in length, no constants will appear, 
and the only operators will be +, — , *, and 
/. To make the problem interesting, assume 
that variables lettered a— h and o -z are 
of type real and the rest arc of type integer. 
This is the same as the implicit types for 
FORTRAN. The program will produce 
code for a "stack machine." That is, the 
operators arc applied only to operands 
already on the stack and the result will 
replace the operands on the stack. One task 
is the recognition of correct expressions. 



An expression is an op- 
tional sign, a term, fol- 
lowed by any number of 
addition or subtraction 
operators and terms. 



This may be done by several methods in- 
cluding precedence tables, LALR(1) parsers, 
and recursive descent. The latter will be used 
since it is the technique employed within 
most PASCAL compilers. Recursive descent 
compilation utilizes a set of recursive proce- 
dures to recognize its input, with no back- 
tracking. To understand the algorithm, 
consider the series of "syntax diagrams" 
in figure I. 

To generate a valid expression, for ex- 
ample, one enters the diagram from the left, 
selects an arbitrary path through the dia- 
gram, and exits to the right. Any box en- 
countered is to be treated like a subroutine 
or procedure call. A circle or box with 
rounded edges is to be the current input 
item. An expression is thus an optional 
sign, a term, followed by any number (in- 
cluding zero) of addition or subtraction 
operators and terms. Similarly, one can 
define a term. These definitions build in 
the normal precedence of operators and 
correctly handle a unary minus. Notice that 
<expr> will call <term>, <term> will 
call <factor> and maybe <factor> will 
call <expr> again. This would occur when- 
ever parentheses were encountered. 

A second task to accomplish is to proper- 
ly handle the necessary type conversion of 
intermediate results. Many textbooks refer 
to this problem when discussing syntax 
directed translation but few illustrate 
"real" solutions. As an example (using the 
above assumptions) consider 

J + K * x 

It is not known that this expression must 
have a real value until the X is seen. The 
recursive descent phase, independent of 
type conversion might translate this to 

PUSH J 
PUSH K 
PUSH X 
MUL 
ADD 

for its equivalent Polish Notation: J KX*+. 
However, what is really required is 



convert the top of the stack) 



PUSHI J 

FLOAT 

PUSHI K 

FLOAT 

PUSHR X 

MULR 

ADDR 



where the operators have either "R" or "I" 
suffixed to indicate a real or integer opera- 
tor, respectively. The suffix for the PUSH 
instruction is known as soon as the variable 
name is seen. The types for the arithmetic 
operators and the insertion of the FLOAT 
instructions must be added somewhat after 
both operands have been seen; in other 



86 



August 1978 © BYTE Publications Inc 



The PerSci generation of 

Diskette Mass Storage Systems 

Smarter, Faster, Smaller. 



A new generation of advances in diskette 
drive technology comes together in PerSci Mass 
Storage Systems, the first diskette subsystems 
to provide large storage capacity, intelligence 
and high speed in as little as 434" of space. 

Two Times The Capacity... 

New PerSci developments in large disk voice 
coil technology reduced to 
floppy disk applications 
make possible data 
densities as high as 
34 Mbyte per 
diskette side — up 
to 2 Mbytes in a two 
drive system. When 
IBM data format com- 
patibility is required, 
PerSci Systems 
will store 34 Mbyte 
per drive. 

Microprocessor 

Intelligence... 

PerSci's highly intelli- 
gent microprocessor 
based controllers, either 
single or double density 
versions, include the 
PerSci File Management 
Firmware. Under controller 
direction, the PerSci Mass 
Storage Systems are capable 
of performing many functions 
normally requiring CPU time 
and memory, including format- 
ting, editing, reinitializing, auto- 
matic file and full diskette copy. 




7 Times The Speed... 

The unique voice coil positioning system of 
PerSci diskette drives allows PerSci systems to 
access data as much as 7 times faster than com- 
petitive systems. A random average seek is 
only 33 ms, as fast as many large disk systems. 

In Half The Space. 

PerSci Systems, one or two 
drive models, can be configured 
for mounting in a 19" rack or 
for table top operation. When 
maximum capacity in mini- 
mum space is called for, PerSci 
offers the "Slimline" system, 
only 434" wide. A single or 
double density controller can 
be mounted in the standard 
system chassis or in the host. 
Interfaces to major micro- 
computers are available and 
an RS232 serial interface is 
optional. 

Get all the most recent 
engineering advances 
in one smarter, faster, 
smaller system at com- 
petitive prices from 
PerSci, Inc., 12210 
Nebraska Avenue, 
W Los Angeles, Calif. 
90025. (213) 820-3764. 




PerSci 



Peripherals a 
Generation Ahead. 



Circle 266 on inquiry card. 



BYTE August 1978 87 



>>H+B 




PUSHR 


fl 


PLISHR 


B 


flDDR 




»fl,'I 




PUSHR 


R 


PUSHI 


I 


FLOAT 




DIVR 




>>I/J 




PUSHI 


I 


PUSHI 


J 


DIVI 




»J+K*X 




PUSHI 


J 


FLOAT 




PUSHI 


K 


FLOAT 




PUSHR 


X 


MULR 




HDDR 




»CI*J- 


<X + M> >/<P+N) 


PUSHI 


I 


PUSHI 


J 


MULI 




FLOAT 




PUSHR 


X 


PUSHI 


M 


FLOAT 




flDDR 




SUBR 




PUSHR 


P 


PUSHI 


N 


FLOAT 




flDDR 




DIVR 




»fl+B* 




t 


ERROR 


>>A*<B+ 


I 




t ERROR 


>>I>*B 




t ERROR 


»ZI 




t ERROR 



Listing 2: Sample program execution. After outputting a prompt the pro- 
gram waits for an expression to be input. It then lists all of the instructions 
that would be generated for a compiler code. 



words, a fixup must be done. As one alter- 
native, this may be accomplished by gener- 
ating code in memory and keeping track of 
the type attribute of each operand and the 
addresses of where the last instruction for 
that operand was stored. If a type conver- 
sion is required on the first operand (of a 
binary operator), all code beyond the saved 
address is simply moved up one location and 
a FLOAT instruction is inserted. If a type 
conversion is required for the second 
operand, a FLOAT instruction is added as 
the last instruction in the evaluation of the 
second operand. [In this paragraph and re- 
maining text of the article, words in upper 
case refer to listing 7 . . . RGAC/ 

The program in listing 1 is a solution to 
the expression evaluation problem. It is a 
direct implementation of the methods 
suggested. The main portion of the program 
is trivial; it asks for a line of input, calls 
procedure EXPR to parse the line, lists the 
output if there is no error, and repeats the 
process. 

The type statements are important and 
quite varied. See that the constant MAXPC 
defines the maximum address space and is 
used in the declaration of the subrange 



type CODESPACE. The variables ATTR 
and LEXTY are symbolic scalar types and 
INSTRUCTION is a record type. 

The variable CODE is an array of instruc- 
tions. This is where the "compiled" code 
will reside. The type attribute of the second 
operand of an operation is stored in GATTR 
which is global to all the program's 
procedures. 

The procedure SCAN picks up the 
next character(s), ignoring spaces and 
determines the correct token and type if 
it is a variable. Note the use of the case 
statement and the sequential nested 
conditionals. 

The procedure ERROR outputs a line 
with an upward pointing arrow to indicate 
where the error occurred. 

The procedures GENCODE and LIST- 
CODE are responsible for encoding the 
instructions into the code array and decod- 
ing the code array for output respectively. 
The with statements simplify both the 
PASCAL and compiled codes. 

Any discrepancy in types of operands 
is resolved by FIXUP which inserts the code 
for the operator itself. In a full compiler, 
FIXUP would also worry about strings and 
other data types and issue the appropriate 
error messages when needed. 

EXPR does most of the work, together 
with the procedures TERM and FACTOR. 
They function exactly as described above. 
They are quite simple in appearance but 
function correctly as the sample runs illus- 
trate. The symbolic scalars ADDOP and 
MULOP are quite useful in this design. 

When properly segmented, any program 
should be similarly constructed and as easy 
to read or modify. A lot may be gained from 
using a top down design. Given the time, 
anyone could stretch this program into a 
full compiler whose output was a similar 
Polish code, and alternatively encode this 
program into their favorite assembly lan- 
guage. All the hard work has really been 
done in expressing the algorithm to solve 
the problem. 

I heartily recommend that anyone 
seriously interested in PASCAL in partic- 
ular and good programming style in general 
obtain the two books listed in the 
bibliography." 

BIBLIOGRAPHY 

• Jensen, Kathleen and Wirth, Niklaus, Pascal: 
User Manual and Report, Springer Study 
Edition (2nd Edition), Springer-Verlag, 
175 Fifth Av, New York NY 10010, 1975. 

• Wirth, Niklaus, Algorithms * Data Structures = 
Programs, Prentice-Hall, Englewood Cliffs NJ 
07632, 1976. 



88 



August 1978 ©BYTE Publications Inc 



Consistency — or a Lack Thereof. 



Notes by C Helmers 

//) this issue readers will note a lack 
of consistency In the typography of 
various articles on Pascal. One fairly 
obvious example of this is the use of all 
upper case and the use of normal English 
capitalization of the name of the lan- 
guage. Since Pascal is derived from a 
proper name, the proper notation is 
lower case with initial capitalization. 
For names which are acronyms, like 
FORTRAN, COBOL, PL/I, etc, the 
upper case notation is appropriate. While 
we strove for consistency within a given 
article, at least one article used upper 
case notation for the name Pascal, 
showing the extreme inertia of tradition- 
alism at a point when it was too late to 
make the changes to final copy. 

The second area of questionable 
typography is a bit more nebulous and 
less subject to editorial fiat when 
"camera ready" type is received from 
authors: the style of representation of 
Pascal program listings. The ideal style 
is of course that used by Niklaus Wirth 
in his book Algorithms+Data Structures= 
Programs, published by Prentice-Hall in 



19 76. This style uses bold face type in 
lower case for representation of the 
Pascal language keywords. It uses italics 
for the representation of specific variable 
names, procedure names and literal 
values which are part of the program. In 
articles by authors Ken Bowles (page 
122), Charles Forsyth and Randall 
Howard (page 50), Chip Weems (page 
143), and Allan Schwartz (page 168) this 
notation was used. But in two of these 
cases, the authors supplied camera ready 
typeset copy along with the articles in- 
volved, in order to minimize potential 
errors due to keystroking. Since two of 
these were typeset at BYTE, and the 
other two were typeset with different 
type specifications on different 
machines, there is naturally a different 
aesthetic flavor to the listings in these 
articles. A close variant of this form is 
seen in the listings of David Mundie's 
article (page 110) where bold face type 
and normal type are mixed in the 
listing. 

There is yet another variation on the 
graphics used to represent Pascal pro- 
grams, provided by the listings accom- 



panying Stephen Alpert's article (page 
78). Here, the camera ready listing was 
supplied by the author as printed on an 
upper case line printer, so keywords are 
indistinguishable from program details 
on the basis of typography alone. 

What can we conclude about this 
inconsistency? Our goal at BYTE from 
now on will be to asymptotically 
approach the notation of Pascal pro- 
grams in the bold face and italic form 
whenever we do the actual typesetting 
of a listing. The italic and the bold face 
typography provides an excellent con- 
trast to normal type when elements of a 
program are mentioned within text. But 
when a manuscript comes with a usable 
camera ready listing of a Pascal program, 
such details of aesthetics must take 
second place to the goal of minimizing 
errors of transcription: it is far better to 
use a camera ready image derived from 
a machine produced listing than to key 
in a program manually in order to create 
a typeset form of the listing. Like pro- 
gramming, execution of a magazine 
production task once a month is fraught 
with myriad details. . .CH 



THERMAL PRINTER 

MANUFACTURED BY TEXAS INSTRUMENTS 




• 12 character/line 

• 5 x 7 dot matrix 

• Alphanumeric capability 

• Weighs 6 ounces 

• Measures 2 3 / 4 " x 3%" x 2Vt" 

• Uses 2 Vi inch thermal paper 



$39.95 




The T159 calculator magnetic card 
reader is now available from Bootstrap 
as a stand alone product. The entire 
assembly, as pictured above, includes: 
housing, motor, read/write head, cables 
and on/off switch. Measuring 2%" x%" x 
IV*" and weighing less than two ounces 
this unit can be used in portable and 
stationary data storage applications. 



BOOTSTRAP ENTERPRISES INC. 

100 Central Expressway • Suite 500 • Richardson, TX 75080 



$79.95 



o 






1 oo 






o 






m 






^ 






X 






H 






c 






o 






w 






73 






S 






IS 






£ 






u 












1 he 






1 • 






s 






\n 






&> 












!y» 






- * 






31 






1 t/> 5 






ill 










1 UJ UJ 






1 c — 






i z S 






1 u £ 






■ « P 






10.41 






1 s<-> 






1 C JS 






1 CO — i 


CD 

E 

K 

z 


to 
c/> 

-a 
< 



1 




ON 




o 

L. 






4) 



u 



.ts 

c 
3 



1 



w CO 






c 
■c 



f- 



a 

4) 


T3 

r. 




41 
c/1 

8 


X) 

S 

U 


T 


£ 


u 

c 


°3 


£ 


UJ 


■-a 
a) 




f- 


41 
T3 



o 
a. 



e 
a 

3 

a 



< 

> 

E 
o 



UJ 

a 



U 


to 
U 


a 
U 


□ 


□ 


□ 



Circle 37 on inquiry card. 



August 1978 © BYTE Publications Inc 89 



All figures and photos courtesy of The Franklin 
Institute, Philadelphia PA 19103. 



Philadelphia's 



179 ^ear Old Android 




Photo I : The 7 79 year old Mai/lardet writing and drawing automaton on dis- 
play at The Franklin Institute in Philadelphia. 



Charles F Penniman 
The Franklin Institute 
Philadelphia PA 19103 



Cuckoo clocks, computers and dolls with 
rolling eyes somehow fascinate us all. The 
fascination seems to stem from our delight 
that people can make contraptions which do 
things by contrivance that are usually done 
by living men and beasts. But whatever the 
reason for it, we find animated statues in an- 
cient China and in the temples of classical 
Greece. In Europe, the clockmakers of the 
Renaissance often adorned their works with 
marvelous moving figures. The famous tower 
clocks of Berne and Messina and the remark- 
able clock in the Cathedral at Strasbourg are 
just a few examples. 

For us who live toward the beginning of 
the Electronic Age, it is hard to imagine the 
excitement that existed in the early years of 
mechanism. The automaton at the Franklin 
Institute that writes poems and draws pic- 
tures dates from those times. In the same 
way that they made machines to perform 
marvelous and delightful things, we program 
computers and build microprocessors to per- 
form even more amazing feats. It is much 
the same phenomenon. 

The Franklin Institute's mechanical lady 
dressed in green is one of the most impor- 
tant of the small number of androids that 
have ever been built with the ability to write 
and draw. The first machine with such capa- 
bilities was built around 1750 by Friedrich 
von Knauss working in Germany, but it 
was from Pierre Jaquet-Droz, Jean-Frederic 



90 August 1978©BYTE Publications Inc 



Leschot, and a succession of their collabo- 
rators that the most elegant machines came. 
In 1774 they produced their first writing 
doll in Neuchatel, Switzerland. The machine 
now at The Franklin Institute in Philadelphia 
was built about 1805 in London by Henri 
Maillardet, an associate of Leschot and 
Jaquet-Droz. His automaton is particularly 
distinguished by its unusually large memory 
and excellent movements. 

The Maillardet machine weighs about 250 
pounds (113.4 kg) and consists of a figure 
kneeling at a writing desk mounted atop an 
ornate stand containing the program and 
driving mechanism. Information for the 
doll's movements is communicated up 
through the body of the figure by an in- 
credibly intricate combination of levers, 
rods, pulleys and cams. 

The heart of the writing and drawing 
operation is actually a mechanical "read 
only memory" in the form of an array of 
disk cams rotating on a common shaft to 
drive the right hand of the figure. The cams 
are driven by a spring motor located at one 
end of the base that is coordinated with a 
second motor located at the other end of the 
base. This motor is used to slide the stack of 
operating cams transversely on their shaft 
into the proper position to produce the 
desired readout. The information contained 
in the undulations of the selected set of cam 
surfaces is picked up by three cam followers 
linked to the doll's hand to produce the re- 
quired right and left, up and down, and ver- 
tical motions. There are seven programmed 
designs from which to choose: two poems in 
French, one in English, and three graceful 
pictures. Two designs require four sets of 
three cams each; the remaining designs are 
each on three sets of cams. This adds up to a 
total of 96 operating cams to govern the mo- 
tions of the right hand of the figure. Addi- 
tional, and far simpler, cams move the left 
hand, head and eyes. 

The machine is marvelously complex, but 
perhaps the greatest marvel is that it can still 
function after nearly 175 years. Apparently 
very little wear has taken place. The details 
of the drawings are still remarkably sharp 
and the writing quite legible. The complex 
of linkages between the rotating cams and 
the motions of the hand still operate with no 
detectable play or slop in the bearings: a 
considerable achievement for engineering 
and technology. How this was achieved is 
largely a matter of conjecture today, but the 
automaton was built in an age in which trade 
secrets were kept closely within the circle of 
one's apprentices and family. It would be in- 
teresting, for instance,- to know exactly how 
the machine was programmed. One can 
speculate that the profiles of the cams were 




Figure I : One of the incredible drawings executed by Maillardet '$ writing and 
drawing automaton in approximately five minutes. The automaton is cur- 
rently on display at The Franklin Institute. 



• 

1 


■ &..' ■Mi £i^H ■ 


• 

•J 

> 


*■ \\\ \ 


e/ 


jp jp* . ■ m^j 



Photo 2: Right arm of the automaton, undraped. Modern ballpoint pen Is not 
historically correct, but is effective. 



August 1978 © BYTE Publications Inc 91 



laid out after the doll was constructed by 
moving its hand over a master drawing and 
tracing the corresponding motions of the 
three cam followers on simultaneously ro- 
tating disks of brass which were then cut and 
filed to their proper shapes. Yet, this is only 
a guess. The only thing that we know for 
certain in this regard is that the profiling of 
the cams had to be done with the greatest 
care and precision since there is up to a ten- 
fold magnification of any possible error due 
to the multiplying effect of the linkage be- 




Photo 3: Rear view of the automaton. Cam motion is carried through the 
body of the doll and across the shoulders to the right arm by a system of rods, 
levers and shafts. 




Photo 4: Drive mechanism located below the tabletop. The spring driven mo- 
tor for the operating cams is at right. The X, Y and Z cams with the three fol- 
lowers are in the center. To the left is the program selection drive motor. 



tween the cam followers and the writing 
instrument in the doll's hand. 

Some of the elaborate and delicate mech- 
anisms that Maillardet made were sold to the 
wealthy. Occasionally they were comis- 
sioned as state gifts. In fact, the only other 
doll with the ability to write that can be at- 
tributed directly to Henri Maillardet was 
made for King George III to give to the 
Emperor of China during a period when the 
English were attempting to establish favor- 
able trade relations with that country. That 
machine was programmed to write, in 
Chinese, flattering messages to the Emperor. 
It made the trip to China successfully and is 
reported to be alive and well in a museum in 
Peking. However, most of the automata that 
were built, including the one at The Franklin 
Institute, went into show business and toured 
all over Europe. Surviving advertisements at- 
test to their popularity. Through newspaper 
clippings, the progress of the Philadelphia 
machine can be traced from France to Russia 
and throughout England until 1850. It is 
possible, but not altogether certain, that it 
was purchased at about that time by the 
great American showman, P T Barnum, for 
his American Museum. By some process, 
now unclear, it came to be owned by a 
Philadelphian, John Penn Brock, whose 
grandchildren donated it to The Franklin 
Institute. Perhaps it was the fire that de- 
stroyed the museum Barnum set up in 
Philadelphia that damaged the machine, 
but it was indeed a charred mass of wreck- 
age when it was delivered to The Franklin 
Institute in November of 1928. Although 
Maillardet had his automaton originally fit- 
ted out as a little boy in court dress, by the 
time it came to The Institute, the costume 
had been changed to that of a French soldier. 
At The Institute, the machine was stored in 
one place and then in another until a staff 
machinist, Charles Roberts, became inter- 
ested in trying to repair it. He was tremen- 
dously proud of his success in doing so as, 
indeed, he should have been. New clothes 
were made, but this time the doll was put 
into a dress instead of a boy's suit. The res- 
toration of the original motion of dipping a 
pen (or perhaps it was a brush) into an ink- 
well turned out to be impossible. Roberts 
substituted a stylograph pen which has since 
been replaced by a totally unhistorical, but 
much more convenient, ballpoint pen. And, 
of course, it was necessary to make a num- 
ber of new parts, but the only significant 
alterations made were to the writing instru- 
ment and to the sex of the doll. 

Tradition in the Brock family had it that 
the automaton had been built by Maelzel, a 
considerable showman, the inventor of a 
metronome, and the builder of a number of 



92 August 1978©BYTE Publications Inc 



AAicrocomputer Problem Solving Using 

PASCAL by Kenneth L Bowles. This book is 
designed both for introductory courses in 
computer problem solving at the freshman and 
sophomore college level, and for individual 
self-study. Graphics is stressed in this version 
of the book, in many cases borrowing from 
the "Turtle Graphics" approach originated 
by Seymour Papert of MIT. A complete sin- 
gle-user software system based on PASCAL 
has been developed at the University of Cali- 
fornia at San Diego, where the author is a 
professor in the Department of Applied Physics 
and Information Science. This system em- 
bodies extensions to the standard PASCAL 
which include the necessary functions and 
procedures for handling graphics and strings. 
563 pp. $9.80. 

An Introduction to Programming and 

Problem Solving With PASCAL by G M 

Schneider, S Weingart, and D Perlman. This 

book has three major goals: 

(1)To introduce all aspects of the pro- 
gramming and problem solving process, 
including problem specification and 
organization, algorithms, coding, de- 
bugging, testing, documentation, and 
maintenance. 

(2) To teach good programming style and 
how to produce a high quality finished 
product. This is brought out in numer- 
ous style examples throughout the text. 

(3) To teach the syntax of the PASCAL pro- 
gramming language. 

PASCAL is used as a vehicle to teach various as- 
pects of programming techniques. $12.95. 

lASCAL User Manual and Report (Second Edition) by K Jensen 

and N Wirth consists of two parts: the User Manual and the Revised Re- 
port. The Manual is directed to those who have some familiarity with 
computer programming and who wish to get acquainted with the PAS- 
CAL language. It is mainly tutorial and includes many helpful examples 
to demonstrate the various features of the language. The Report is a 
concise reference for both programmers and implementors. It defines 
Standard PASCAL, which constitutes a common base between various 
implementations of the language. $6.90. 

Programming in PASCAL by Peter Grogono. This book is an ex- 
cellent introduction to one of the fastest growing programming lan- 
guages. The text is arranged as a tutorial containing both examples and 
exercises to increase reader proficiency in PASCAL. Besides sections on 
procedures and files, there is a chapter on dynamic data structures such 
as trees and linked lists. These concepts are put to use in an example 
bus service simulation. Other examples range from the Tower of Hanoi 
problem to circumscribing a circle about a triangle. Programming in 
PASCAL is sure to hold the reader's interest. 359 pp. $9.95. 




ttssmsr 



5 

Storing* 



mrxmnmms 



Speaking of 

PASCAL 




The 



Design of Well-structured and 
Correct Programs by S Alagic and M A Arbib. 
This book represents ten years of research in 
top-down program design and verification of 
program correctness, and demonstrates how 
these techniques can be used in day-to-day 
programming with PASCAL. An explanation 
of control and data structures and many 
examples of programs and proof development 
are provided. As a programming text, this book 
contains an introduction to the language, 
provides algorithms which operate on sophis- 
ticated data structures, and offers the full 
axiomatic definition of PASCAL in terms of 
proof rules. To use this book, no particular 
mathematical background is necessary beyond 
the basic idea of a mathematical proof, al- 
though an introductory course in programming 
is required. 292 pp. $12.80. 



■ITS 



DIAL YOUR BANK CARD ORDERS ON OUR TOLL-FREE HOT LINE: 1-800-258-5477. 



Name. 



The Microcomputer Bookstore 



25 Route 101 West 
Peterborough, NH 03458 

LjMy check enclosed: 

Check #: 

Amount: 



Address. 
City 



-State- 



.Zip. 



Signature. 



Total 




Number of books . 



^My card # :. 



Expires:_ 



Postage $.75/book or 
$1.00 outside U.S. 



Prices subject to change without notice. 



Grand Total 
Dealer Inquiries Invited. 



You may photocopy this page. 



Circle 32 on inquiry card. 



BYTE August 1978 93 




Photo 5: Center follower 
at rest on the bar on which 
it slides as the cam deck is 
positioned laterally. The 
undulations of the cams 
are also visible. 



automata. In his memoirs, P T Barnum 
records the purchase of several automata 
from him. But after being repaired, the au- 
tomaton herself set things right when her 
memory was read out. Following the last 



N 





<H^, /->' '- - "^V/- /#* 



Figure 2: An example of the written output of Maillardet's writing and draw- 
ing automaton. The French poem is freely translated as: "A child by ladies 
adored, 1 1 am throughout all lands, I In good favor with women, /And also their 
husbands. " Below the poem in French is the inscription "Written by Maillar- 
det's Automaton." 



V"'-.' 




line of her last poem, the hand continued 
to write in its clear but quaint style: "Ecrit 
par L' Automate de Maillardet," meaning 
"Written by Maillardet's Automaton." With 
this clue, locked for nearly 90 years in the 
memory of the machine, it was possible to 
search out and determine its proper origin. 
The one English poem that she knows 
how to write (see page 102) is as follows: 

Unerring is my hand, tho' small. 
May I not add with truth: 
I do my best to please you all; 
Encourage, then, my youth. 

Certainly her hand cannot be as unerring as 
it was in 1805. It would be interesting to 
have a sample of her writing from that time 
to make a comparison. But she still does her 
best to please and amaze us." 



You May Have Seen Her in Action . . . 

In an excellent WGBH NOVA presenta- 
tion on "Artificial Intelligence" aired on 
public television stations in March 1978, The 
Franklin Institute automaton by Maillardet 
may have been seen in action by many 
readers. (Also seen in action were robots 
NEWT and Shakey of contemporary vintage. 
The program also featured interviews with 
science fiction writer Arthur C Clarke, and 
a number of artificial intelligence researchers 
regarding the prospects for the near and far 
future of smart machine technology.) 



94 August 1 978 © BYTE Publications Inc 



Get Down to Business 




How to Profit From 

your Personal 

Computer 

by Ted G Lewis 



If you want to use your personal com- 
puter in a profitable manner, and you need 
some help planning programming techniques 
this book is for you. It contains suggestions 
for accounting, payroll handling, inventory 
management, and sorting mailing lists. Many 
terms and notations are explained. Sample 
programs in BASIC, the use of blueprints 
to design program structure, and a full 
glossary of terms are a few of this book's 
special features. 191 pp. $7.95. 




Up your OWN 
Organization! 

by Donald M Dible 



— A great handbook on how to start and 
finance a new business, this is the most 
comprehensive reference we've seen on the 
subject. For the programmer-consultant or 
the basement homebrewer-tumed-entrepre- 
neur, this is your book. It is recommended 
in the Bank of America Small Business 
Reporter and Changing Times magazines. 
372 pp. Available for $14.95 in hardcover. 



FUNDAMENTALS 

OF 

RECORDKEEPING 

AND 

FINANCE 

FOR 

THE 

SMALL 

BUSINESS 




Fundamentals of 

Recordkeeping and 

Finance for the Small 

Business 

by Robert C Ragan, 

CPA, 

and Jack Zwick, Ph.D 



— Once you have your organization or 
business up and running, records must be 
kept. What should I keep, and how do I 
record them? This book on fundamentals 
will give you a helpful start. Section one 
deals with maintaining records, protecting 
assets, and providing a basis for planning. 
Section two provides a starting point for 
owner-managers wanting to sharpen their fi- 
nancial management skills. 196 pp. $10.00. 




Payroll With Cost 
Accounting in BASIC 

by Lon Poole 

and 
Mary Borchers 



This book includes program listings with 

remarks, descriptions, discussion of the 
principles of each program, file layouts, 
and a complete user's manual with step-by- 
step instructions, flowcharts and sample 
reports with CRT displays. All 35 programs 
are written in the widely used computer 
language BASIC, and work together to pro- 
duce a payroll, right down to the printing 
of paychecks and maintaining of employee 
records. $12.50. 




BASIC with Business 
Applications 

by Richard W Lott 



This book focuses on the BASIC lan- 
guage and its application to specific business 
problems. The book is divided into two 
sections. Part one introduces the BASIC 
language and the concept of logical flow- 
charting. Part two presents problems and 
possible solutions. Topics include: interest 
rate calculation, break-even analysis, loan 
rates, and depreciation. Exercises at the end 
of each chapter give a greater understanding 
of BASIC by actual programming. $10.50. 




Financial Analysis 

and Business 
Decisions on the 
Pocket Calculator 

by Jon M Smith 



This book is designed to aid the experi- 
menter in performing applied analysis. It 
gives a variety of numerical techniques, 
approximations, tables, graphs, and flow- 
charts for calculations. All methods have 
been optimized for the pocket calculator. 
Topics include: calculating present and fu- 
ture values, consumer finances, real estate 
calculations, business statistics, and systems 
analysis. 31 7 pp. $14.95 hardcover. 




Charging for 
Computer Services 

by D Bernard, 

J C Emery, 

R L Nolan, and 

R H Scott 



This book is written for managers who 

must deal with service charges. This book 
provides the manager with principles and 
guidelines for a better understanding of the 
charge problem. The book provides general 
design principles along with specific sug- 
gestions to deal with specific problem areas. 
Charging for Computer Services is a neces- 
sary book for the manager making decisions 
in this vital area. 120 pp. $10.00, hardcover. 



WRITING 
AT WORK: 
DOs.DON'Ts, 

and 
HOWTOs 



* 



*0* 



Writing at Work: Do's 
Don't's, and How To's 

by Ernst Jacobi 



This is not a grammar or usage text. The 

goal of this informative book is "to turn 
writers into communicators." Addressed to 
the educated business or professional person 
who can write adequately, this guide is full 
of practical advice that will help you make 
your writing enjoyable, effective, and suc- 
cessful. 198 pp. $7.95. 




A Dictionary of 
Microcomputing 

by Philip E Burton 



In the opinion of BYTE's editor, Carl 

Helmers, "This is one of the best designed 
and executed dictionaries of computer 
related terms yet seen on the market. It is 
of particular relevance to those individuals 
who want a good general reference to 
numerous technical terms, broadly covering 
hardware and software fields as currently 
practiced." $12.50 in hardcover. 



BITS 



Circle 33 on inquiry card. 



For your convenience in ordering, please use this page plus the order form on page 93. You may 
photocopy this page. DIAL YOUR CHARGE CARD ORDERS TOLL-FREE 1-800-258-5477. 

The Microcomputer Bookstore 



25 Route 101 West, Peterborough, NH 03458 



BYTE August 1978 



95 



Antique 
Mechanical Computers 



Part 2: 
18th and 19 th Century Mechanical Marvels 



Dr James M Williams 

58 Trumbull St 

New Haven CT 06510 



In the last quarter of the 

18th century first a few, 

then a flood of automata 

began to appear. 



In "Part 1: Early Automata," page 48, 
July 1978 BYTE, we traced the develop- 
ment of antique mechanical computers up to 
the middle of the 18th century, and de- 
scribed such devices as Vaucanson's mechan- 
ical duck. Now we continue with a dis- 
cussion of talking, writing and music playing 
automata of the 18th and 1 9th centuries. 
(The discussion is not meant to be an 
exhaustive one, of course, since that would 
be beyond the scope of this series.) 

Later Automata 

Vaucanson's creations blazed across the 
scene in Europe 240 years ago, casting new 
light into hitherto dark places by showing 
what the dedicated mechanician could 
achieve. But, even after Vaucanson, the way 
was difficult. 38 years passed before a 
second flute playing machine was seen, a 
seated pair of rustics built by Duchamps in 
1776 and said to be capable of playing 13 
tunes. 109 years after Vaucanson made the 
original mechanical duck, a mechanician 
named Rechsteiner, who had restored that 
original duck, produced and displayed a 
duck of his own. Rechsteiner's duck was the 
product of three years of work. It appeared 
in 1847 and was the last automaton animal 
of note. 

In the last quarter of the 18th century, 
first a few, then nearly a flood of auto- 
mata began to appear, as clockmakers 
began to realize not only the possibilities of 
their craft but also the splendid prices their 
premier work might command. The more 
standard automata such as ornamented 
clocks, from snuffbox size to prodigies 



bigger than steamer trunks, with processions 
of moving allegorical figures, spirals, pin- 
wheels, and waterfalls, chimes, bells, 
dulcimers, whistles, organs, and birdcalls, 
continued to be made and sold. Every 
titled person had a score of them and men 
of substance could own several. The clock- 
maker of ambition knew where his challenge 
lay. There were mysteries to be created in 
machinery, and money and fame to be 
had. Mechanicians began to devote them- 
selves to duplicating the physical action of 
parts of the human body. They chose part- 
behavior because of the immense difficulty 
of fabricating a mechanism that could 
imitate even one of the coordinated acts 
humans orchestrate into the continuous 
chain of actions; namely, behavior. 

It is worth noting that in adults the 
discrete units of purposeful action which 
seem so integrated and effortless to most of 
us are anything but smooth and coordinated 
in early childhood. Most people can recall 
their clumsiness and exasperation in learning 
to tie their shoes or button their garments. 
The most intense concentration and dedi- 
cated repetition is required to cause these 
action patterns to set in our central com- 
puting mechanism (see "The Brains of 
Men and Machines," parts 1, 2, 3 and 4, 
February thru April 1978 BYTE), but 
once the setting (ie: learning) takes place 
over time, it becomes possible for us to 
execute one of these unit actions at will, 
devoid of effort and concentration. (The 
mechanism and locus of the setting is 
obscure: so is other memory storage. 
Lately, the cerebellar complex is viewed 
as the best candidate for unitary motor 



96 



August 1978© BYTE Publications Inc 




Figure 1: Aquatint etching of the Automaton Exhibition held at Gothic Hall in London in 1836. Various automata 
are shown; the one at the far right is evidently Jacquet-Droz's writing and drawing automaton now in the collection 
of the Franklin Institute in Philadelphia (see "Philadelphia's 172 Year Old Android" by Charles F Penniman, page 
90 in this issue). The figure is shown dressed as a boy, but women's clothes were substituted when the unit was 
rebuilt in 1936 at the Institute. Exhibitions like this were relatively common in the 19th century. Engraving cour- 
tesy Charles F Penniman. 



actions.) We can tie shoelaces behind our 
backs, a thing we never practiced or learned. 
Even extreme situations, like tying shoelaces 
while wearing mittens or hanging by the 
knees from a trapeze, do not begin to strain 
the capacities of our interior computing 
mechanism. The required actions have been 
"frozen" into our brains. Not only are they 
refractory to disarrangement (they endure 
as long as we live) but they are also flexible 
enough to permit our adapting them to 
novel circumstances. We all possess within 
us many thousands of such unitary chunks 
of learned behavior, now fully automatized 
and playable on command. 

This is the part-behavior, smooth, contin- 
uous and automatic, that was being imitated 
by mechanicians. It requires substantial 
storage of program to duplicate. From our 
vantage point program storage is the most 
important feature these machines possessed. 
Consequently, many very beautiful mech- 
anisms (the display pieces of Carl Faberge, 
jeweler to the Imperial Russian Court; 
a wide range of novelties such as sooth- 
sayers, magicians and other conjurers, 
acrobats and ropewalkers, agile harlequins 
and jugglers, automatic confectioners and 
wine stewards, and a great many more dis- 
play mechanisms) are not mentioned here 
because they had little stored programming. 



Walking and Running Machines 

Early walking and running automata 
were represented only by dolls and toys. 
They were essentially trivial, programmed 
devices for they always very ingeniously 
arranged an apparent walking action (only 
a simple repetitive motion). The walk 
lacked directionality, nor was there pro- 
vision for walking on other than smooth 
surfaces. It would be difficult to design a 
machine to walk in the same sense that 
people do: that is, the weight of the trunk is 
for a moment supported by one leg alone 
while the other leg is being drawn forward 
for a next step. Walking is in fact organized 
falling, with the mobile extremity brought 
forward just in time to forestall disaster. 
When you stop to recall that every known 
mechanical man actually rolls on wheels, 
and that at least three wheels are always 
employed to define the plane, you gain a 
new respect for human locomotion and a 
valuable perspective on the limitations of 
mechanisms that undertake to imitate it. 

Speaking Machines 

As far as I can discover, no programmable 
device uttering words, or their approxima- 
tions, was ever known before the late 



How can one describe 
machines so marvelously 
devised and tutored in 
their tasks that they rival 
the actions of human 
beings? 



August 1978 © BYTE Publications Inc 97 



IDS 



INTERNATIONAL DATA SYSTEMS, INC. 

400 North Washington Street, Suite 200, Falls Church, Virginia 22046 U.S.A. 
Telephone (703) 536-7373 




88-MODEM: A complete serial I/O port and an Originate/ Answer MODEM on an 
St 00 bus compatible board. The 88-MODEM features automatic auto-dialer (not 
software timed), operates at any software selected baud rate between 66 and 600 
baud, has separate 8-pole transmit and receive active filters, and all functions are 
software selected. The 88-MODEM provides communication to -58 dbm and is intended 
for use with either a CBS (1001 D) or CBT Data Access Arrangement for connection 
to the telephone system. The kit price is $245.00. 




88-UFC UNIVERSAL FREQUENCY COUNTER: The 88-UFC is an S100 compatible 
Irequency and period measurement module. The 88-UFC has four software selected 
inputs. Frequency measurement to above 600MHz and period measurement to 1 /10th 
microsecond are standard. The counter provides nine digits of readout and is priced 
ai $179.00 in kit form. 




88-SPM CLOCK MODULE: The 88-SPM provides a lime of day clock and an inde- 
pendent realtime clock on one S100 compatible module. Provisions are included for 
battery backup so the 88-SPM can maintain the time during power-off conditions. 
$96.00 kit 

1001D (Type CBT) Data Access Arrangement $125.00 

88-RCB 16 Channel Relay Control Board Kit $179.00 

MCTK Morse Code Trainer/Keyer Kit 29.00 

TSM Temperature Sensing Module Kit 24.00 

DAC-8 8-Bit Digital to Analog Converter Kit 19,00 
88-TCXO Temperature Compensated Crystal 

Oscillator for 88-UFC 145.00 

88-XTAL Crystal Timebase option for 88-SPM 25.00 

TERMS: Payment with order shipped prepaid, added for COD. Master Charge accepted 



19th century (or even in later periods up to 
the time of Bell Labs' Vodor of 1939 
World's Fair fame, which required an oper- 
ator). Still, some remarkable devices appear 
to have existed. Leaving aside the brazen 
talking heads that dot Greek and Byzantine 
mythology (they were without a doubt 
all hoaxes), we learn that the Abbe'Mical 
in 1774 was said to have exhibited two talk- 
ing heads which he later destroyed. In 1779 
Kratzenstein won a prize offered by the 
Russian Imperial Academy of Science for 
a device that could pronounce distinguish- 
able vowels. This device was made from 
a set of five specially shaped pipes. Baron 
Wolfgang Kempelen, creator of the Great 
Chess Automaton, worked for many years 
on talking devices, and one was said by 
Goethe to be ". . .able to say some childish 
words very nicely." The machine was a 
kind of bellows, soundbox, artificial tongue 
and mouth contrivance that the Baron 
manipulated under cover of a cloth; it now 
resides in a museum in Munich. Farber 
invented a machine which apparently spoke 
well enough to induce PT Barnum to pur- 
chase it for exhibition, in 1873. The device 
was operated by a keyboard. 

It is a very curious thing that investiga- 
tion of artificial speaking devices was so 
neglected by gifted mechanicians, for speech 
is the unique achievement of man. Moreover, 
the ear is so adaptable and forgiving of 
faults in the spoken word that virtually any 
kind of squawk might pass for a sentence. 
The mechanical problems would have been 
very great, but not insuperable. 

Writing Machines 

Between 1753 and 1760 Friedrich von 
Knaus of Darmstadt devised and con- 
structed four different machines that wrote 
block letters or cursive script according to 
programming using a quill pen and ink with 
programmed pauses to dip the pen. One 
machine produced three texts from three 
pens, while the last machine could inscribe 
up to 107 letters of preset text from its 
stored program or write individual letters 
one at a time from dictation under control 
of the operator. It may accurately be de- 
scribed as the first typewriter or script- 
writer. The mechanism appears to have been 
a cluster of shaped cams on which rode an 
array of cam followers, each one directing 
movements of the pen to form a letter. 
Text composition was managed by a drum 
that bore many rows of holes into which 
studs could be placed to activate the 
required cam. Thus text was easily altered 
by changing the pattern of studs. The tablet, 



98 



August 1978 © BYTE Publications Inc 



Circle 185 on inquiry card. 



A Bit of the BASIC 



Computer Resource Book— Algebra by 

Thomas A Dwyer and Margot Critchfield is 
an exciting new way to learn about algebra 
and the interesting things you can do with it 
using a computer. The book uses the BASIC 
language, and flowcharts are used through- 
out to show the structure of programs. 
There are 60 applications programs inclu- 
ding straight line graphs, polynomial equa- 
tions, a space probe navigator, temperature 
profiles, computer generated animation, the 
ultramatic root finder, random number 
generation and many more. Although it 
is particularly suitable for students, just 
about everyone will find some intriguing 
and easy to use applications in this enter- 
taining book. $4.80. 



Basic BASIC by James S Coan. If 

you're not already familiar with BASIC, 
James Coan's Basic BASIC is one of the 
best ways to learn about this popular 
computer language. BASIC (which stands 
for Beginner's All-purpose Symbolic Instruc- 
tion Code) is easy to learn and easy to apply 
to many problems. Basic BASIC gives you 
step-by-step instructions for using a ter- 
minal, writing programs, using loops and 
lists, solving mathematical problems, under- 
standing matrices and more. The book con- 
tains a wealth of illustrations and example 
programs, and is suitable for beginners at 
many different levels. It makes a fine refer- 
ence for the experienced programmer, too. 
$7.95. 



A Guided Tour of Computer Pro- 
gramming in BASIC by Thomas A Dwyer 
and Michael S Kaufman. Colorful graphics 
abound in this lively introduction to the 
BASIC language. The authors have tried 
to present a rigorous, yet entertaining 
approach to the subject. Written for the 
novice, A Guided Tour begins with a 
section on how to recognize a computer, 
followed by some tips on working at a 
terminal. By the end of the book readers 
are writing their own programs and solving 
elementary problems in finance and busi- 
ness. The emphasis throughout is on lear- 
ning by doing. Anyone interested in com- 
puter programming should benefit from 
A Guided Tour of Computer Programming 
in BASIC. $4.80. 



. .; ■ " «-: 





Introduction to Computer Program- 
ming by Rudd A Crawford Jr and David H 
Copp. Here is an excellent way to learn 
about the general aspects of computer pro- 
gramming. Introduction to Computer Pro- 
gramming makes use of a hypothetical com- 
puter model and set of assembly language 
instructions designed to help the beginner 
see what goes on in computer programs. 
The emphasis throughout is on general 
principles; such concepts as loops, decisions, 
flowcharts and 10 routines are covered in 
detail. The book also provides many ex- 
ample problems and prompts the reader by 
posing several quiz questions. Anyone who 
masters its contents will have a solid foun- 
dation for the study of practical assembly 
and high level languages. It is especially 
recommended for students, but just about 
everyone new to the subject should profit 
from it. $4.35. 







advanced 



Advanced BASIC by James S Coan. 

Advanced BASIC is the companion volume 
to James Coan's Basic BASIC. In this book 
you'll learn about some of the more ad- 
vanced techniques for programming in 
BASIC, including string manipulation, the 
use of files, plotting on a terminal, simula- 
tion and games, advanced mathematical 
applications and more. Many useful algor- 
ithms are covered, including some clever 
sorting techniques designed to reduce 
program execution time. As with Basic 
BASIC, there are many illustrative example 
programs included. BASIC doesn't have to 
be basic with Advanced BASIC! $6.95. 



m*' 



# * 




Some Common BASIC Programs by 

Lon Poole and Mary Borchers, published by 
Adam Osborne and Associates. At last, a 
single source for all those hard to find 
mathematics programs! Some Common 
BASIC Programs combines a diversity of 
practical algorithms in one book: matrix 
multiplication, regression analysis, principal 
on a loan, integration by Simpson's rule, 
roots of equations, operations on two vec- 
tors, chi-square test, check writer, geometric 
mean and variation, coordinate conversion 
and a function plotting algorithm. These 
are just some of the many programs in- 
cluded. For only $7.50 you can buy the 
kind of programs previously available only 
as part of software math package systems 
for large scale computers. All the programs 
are written in a restricted BASIC suitable 
for most microcomputer BASIC packages, 
and have been tested and debugged by the 
authors. $8.50. 



IITS 



DIAL YOUR BANK CARD ORDERS ON OUR TOLL-FREE HOT LINE: 1-800-258-5477. 



The Microcomputer Bookstore 



25 Route 101 West 
Peterborough, NH 03458 

I I My check enclosed: 

Check #: 

Amount: 

I I My card # : 




Expires:- 



Name. 



Address. 
City 



Signature. 



-State- 



.Zip. 



Total 



Number of books . 



Postage $.75/book or 
$1.00 outside U.S. 



Grand Total 



Prices subject to change without notice. 



Dealer Inquiries Invited. 



You may photocopy this page. 



Circle 34 on inquiry card. 



BYTE August 1978 99 



16K RAM 

Fully Assembled, Tested, ___ 
Burned-in 




Fully Static TMS 4044 



250 nsec. chips — $425 



Z-80A 4 Mhz. Fast — This fully assembled and tested 
1 6K board was designed to operate without wait states 
in a 4 Mhz. Z-80A system allowing over-generous time 
for CPU board buffers. 

450 nsec. chips — $375 

For 2 Mhz. Systems — Same circuit as above but 
priced lower because of less expensive memory chips. 
It is fully assembled, burned-in, tested and guaranteed. 

8K Versions Also Available 

Both boards available fully assembled with sockets 
for all 32 MOS chips but supplied with only 8K of chips. 
8K— 250 nsec— $265. 4K chip set— $95. 8K-450 
nsec— $235. 4K chip set— $85. 

Fully Static Is Best — Both boards use the 
state-of-the-art Texas Instruments TMS 4044 which 
requires no complicated and critical clocks or refresh. 
The fully static memory chip allows a straight-forward, 
"clean" design for the board ensuring DMA compatibili- 
ty. They use a single 8 volt power supply at 1.8 amps 
nominal. 

Fully S-100 Bus Compatible — Each 4K addressable 
to any 4K slot and separately protected by DIP switches. 

Commercial Quality Components — First quality 
factory parts, fully socketed, buffered, board masked on 
both sides, silk-screened, gold contacts, bus bars for 
lower noise. 

Guaranteed: USA customers — parts and labor 
guaranteed for one full year. You may return undam- 
aged board within ten days for full refund (factory orders 
only — dealer return policy may vary). Foreign 
customers — parts only guaranteed; no return privilege. 

Check your local computer store first 

Factory Orders — You may phone for VISA, MC, 
COD orders. ($3 handling charge for COD orders only) 
Purchase orders accepted from recognized institutions. 
Personal checks OK but must clear prior to shipment. 
Shipped prepaid with cross-country orders sent by air. 
Shipping — normally 48-72 hours. Washington resi- 
dents add 5.4% tax. Spec, sheet, schematic, warranty 
statement sent upon request. 






1 Seattle Computer Products, Inc. 

^f ^ 1114 Industry Drive, Seattle, WA. 98188 
(206) 255-0750 



bearing paper, moved one step after inscrip- 
tion of each letter. Knaus described his 
machines in a 1780 book, Selbstschreibene 
Maschine. His machine number 4 was shown 
at the Paris Exposition of 1937. It now 
resides in the Vienna Technical Museum. 

The Automata of Jacquet-Droz and Leschot 

How can one describe machines so mar- 
velously devised and "tutored" (ie: pro- 
grammed) in their tasks that they rival the 
actions of human beings proficient in the 
art the machine imitates? One can compare 
them to humans and the analogy is intrigu- 
ing, but humans are born with the necessity 
to learn many advanced action patterns and 
the automata were able to perform several 
advanced action patterns directly after 
construction. And humans age and die 
while the machines are two centuries old 
and act as well as the day they were set 
in place. They are seemingly flawless, age- 
less, potent and wise. And if you compare 
them to spirits you will be very nearly right, 
for they are shaped to resemble other- 
worldly creatures: cherubs or angels. If the 
compactness, beauty and simplicity of their 
mechanism with its nearly perfect function- 
ing leads you to compare them to fine 
watches, you will be very nearly right again, 
for their builders were first of all horologists. 
They were the family of Jacquet-Droz (two 
brothers and a son) and Leschot, their 
master mechanician. 

Long involved in making elaborate time- 
pieces in Geneva, Jacquet-Droz the younger 
may well have been influenced by word of 
Knaus' writing automaton. The Writer, 
Draftsman and Musician he designed and 
constructed, were placed on display simul- 
taneously in 1774, and they have charmed 
every person who has seen them. They are 
on display in the Museum of Automata, in 
Neuchatel, 30 miles east of Geneva in 
western Switzerland. Consider the fact: 
here are devices seen and admired today, as 
well as by the courts of Louis XV, Louis 
XVI, George III, Napoleon and even by 
Franklin and Jefferson. 

The Writer writes a preset text of 40 
letters and spaces in about the same time 
and with quite a bit more skill than it 
might be written by an 8 year old child. 
The Draftsman draws a series of stored 
pictures, any one you choose, about as well 
as a gifted child of 12 years might do, 
while the Musician plays five melodies on 
her harmonium, as a musical child of 10 
years might do. They have been performing 
these feats for 204 years. 



100 August I978SBYTE Publications Inc 



Circle 313 on inquiry card. 




THE FULL POWER OF THE 1 6-BIT TMS 9900 MICROPROCESSOR IS NOW AVAILABLE WITH THE UNIQUE COMBINA- 
TION OF RELIABLE HARDWARD AND FAST, EASY TO USE SOFTWARE IN THE TECHNICO SS-16. WITH MINICOMPUTER 
PERFORMANCE THE TECHNICO 16-BIT MICROCOMPUTERS ARE AVAILABLE FROM THE SINGLE BOARD SUPER 
STARTER SYSTEM AT UNDER $400 TO THE FULL SS-1 6 WITH UP TO 65K BYTES OF MEMORY, MINI-FLOPPY OR 
FULL FLOPPY DISKS, A 4800 BAUD DIGITAL CASSETTE, 64 COLOR VIDEO BOARD OPTION, RS232 AND 20 
MA CURRENT LOOP ALL COMBINED WITH ONE OF THE INDUSTRYS FASTEST BASICS AND A FULL ASSEMBLER, EDITOR, 
LINKING LOADER PACKAGE. SYSTEMS ARE AVAILABLE COMPLETELY ASSEMBLED AND TESTED OR IN UNASSEMBLED 
TEC-KIT™ FORM. EXPLICIT MANUAL INCLUDED OR AVAILABLE SEPARATELY AT $35. TO LEARN MORE...JUSTTEAR OFF A 
PIECE OF THIS AD AND RETURN TO TECHNICO OR CALL OUR HOTLINE 1-800/638-2893 OR YOUR LOCAL DEALER. 
EUROPEAN MODELS AVAILABLE THROUGH TECHNICO INTERNATIONAL 




TECHNICO 

INCORPORATED 



9130 RED BRANCH RD 

COLUMBIA. MD 21045 

PHONE 301 596 4100 




TECHNICO 

INTERNATIONAL 



2442 N LEXINGTON ST 

ARLINGTON, VA 22207 

PHONE 703-538-4000 

TELEX. 64100 SOLIDSTA 



DOMESTIC SALES 



Circle 372 on inquiry card. 



SALES OUTSIDE CONTINENTAL U.S. 

BYTE August 1978 101 



i t ti 

Photo I: Four successive es drawn by the Malllardet machine, showing the 
consistency of the mechanical drive system as well as the variations in letter 
width that were possible using a quill pen. 




Photo 2: Enlargement of 
letter y drawn by the 
Maillardet writing and 
drawing automaton. Each 
subdivision of the grid is 
1 mm. 



The Writer 

The Writer is 28 inches (71 cm) tall. 
Carved of wood and painted, this automaton 
produces "an unusual impression of life" 
similar to top quality wax figures. He is 
clothed in a flowing robe and is seated on 
a Louis XV stool at a mahogany desk. His 
right hand, poised an inch above the desk 
and writing tablet, holds a short tube in 
which a quill pen is fixed. When the mecha- 
nism is activated the Writer raises his hand, 
swings it laterally, dips his pen into the 
inkwell fixed to the right margin of the 
desk, shakes the hand twice to clear the 
pen of excess ink and pauses. Another 
touch on the mechanism and he begins to 
write, forming letters with slow, patient 
care. 

After each letter, the pad of paper moves 
to the left by an amount sufficient to leave 
space for the next letter, but more for a 
wide letter or a capital than for is and Is 
and fs. He can write 40 different letters 
on two or three lines, and there is pro- 




Figure 2: An example of the writing created by Maillardet 's writing and 
drawing automaton using a ballpoint pen. "Unerring is my hand tho' small j 
May I not add with truth 1 1 do my best to please you all /Encourage then my 
Youth. " Courtesy Franklin Institute. (For a more complete discussion of this 
automaton, see "Philadelphia's 179 Year Old Android" on page 90.) 



gramming for several pen dips. Most re- 
markable is the provision for the unit to 
vary the pressure of the pen so that the 
letters produced are weighted, formed of 
thick and thin strokes. 

Except for the few levers controlling 
movements of the paper tablet, all of the 
automaton's mechanism is contained in the 
torso, accessible from the back. There are 
two parts of the mechanism, and they 
interact with each other. The first is a cluster 
of letterforming cams on a common shaft, 
the cam follower of which rides on a car- 
riage that slides on rails so it can cover the 
length of the cluster to settle on the rim 
of the desired cam. There are actually 
three cam followers and three cams provided 
for each letter. Two govern movements of 
the right arm and the third regulates pen 
pressure for varying the stroke width. 

The second portion of the mechanism is 
the text selector, a disk 4 inches (10 cm) 
in diameter at the bottom of the cam cluster 
shaft. The rim of the text selector disk is 
divided into 40 sectors, or an angular wedge 
of 9° per sector. The sectors are not fixed, 
but rather slide radially when one of their 
40 screws is turned. In this way the radius 
of the disk can be varied sector by sector, 
giving the appearance of a snaggle toothed 
gear. Each sector in turn regulates the posi- 
tion of the cam follower carriage (with 
its three cam followers) according to where 
that sector is set. Thus the text selector disk 
selects which set of three cams will be em- 
ployed, and the letter those three cams 
control is the letter the right arm inscribes. 
Changing the text is as easy as turning 40 
screws to just the right position. The zero 
radius (baseline) position of the text disk 
appears to control the pen dipping mecha- 
nism, so you can set up as many pen dips 
as you wish at the loss of a letter or space 
for each one. 

Control is handed back and forth be- 
tween the text selector disk and the letter 
forming cam cluster. Either one or the 
other operates at a given moment, but 
the text disk is stationary almost all the 
time (moving in jumps) whereas the cam 
cluster that forms the letters is moving 
most of the time (halting only to permit 
the text selector to turn to its next position 
and choose the next letter). An intriguing 
point, for 1774, is that the surfaces of 
greatest wear (the three cam follower 
bearing points) are apparently jewelled 
with ruby so that the high pressures (prob- 
ably a 40:1 lever ratio, or more) will cause 
minimal wear and distortion of the letter 
shapes over time. All this machinery is 
said to be quite sensitive to temperature 
changes. 



1 02 August 1 978 © BYTE Publications Inc 



The Microcomputer Bookstore DTTC 

25 Route 101 West, Peterborough NH 03458 WLS ^^L ' UP 

Best Sellers 



* 



* 



* 



* 



* 



* 






— Getting Involved With Your Own Computer by Leslie Solomon and Stanley Veit answers the 
questions: "What can small computers do? Which is best for my purposes?" Whether your interest 
is business applications, word processing, education, security, etc., this lucid text will bring you in 
touch with an exciting new world destined to affect us all. $5.95. 

— The Thinking Computer: Mind Inside Matter by Bertram Raphael. Artificial intelligence, or Al, 
is the branch of computer science concerned with making computers "smarter." It is a growing, 
vital field that is, unfortunately, the subject of much popular misunderstanding. This book is a 
lucid introduction to Al that does much to overcome this misunderstanding. With a minimum of 
technical jargon, it discusses the capabilities of modern digital computers and how they are being 
used in contemporary Al research. It discusses the progress of Al, the goals, and the variety of 
current approaches to making the computer more intelligent. $6.95. 

The First Book of KIM edited by Jim Butterfield, Stan Ockers, and Eric Rehnke. Attention 

KIM users! Here is the book you've been waiting for. In it you'll find a beginner's guide to the 
MOS Technology KIM-1 microcomputer as well as an assortment of games including Card Dealer, 
Chess Clock, Horse Race, Lunar Lander and Music Box. Also featured are diagnostic and utility 
programs for testing both the computer and external equipment (such as cassette recorders), and 
chapters on expanding memory and controlling analog devices. 1 76 pp. $8.95. 

Periodical Guide for Computerists, January December 1977, by E. Berg Publications. This is a 

comprehensive index of all the articles, book reviews, editorials, letters, record reviews, and mis- 
cellaneous small inserts and notes from the top 25 magazines in the field. Several thousand articles 
are grouped into over 60 subject categories that are listed alphabetically for easy reference. At the 
back is an author index, including the major areas of their expertise. An indispensable guide for 
anyone in the fields of personal computing, amateur radio, and electronics. 72 pp. $5.00. 

— Scientific and Engineering Problem Solving With The Computer by William Ralph Bennett Jr is 
one of the most exciting books we've seen in years. Besides teaching BASIC, this lively, lucid book 
presents a wealth of imaginative and unusual applications programs taken from many disciplines (A 
sample exercise: "Using the algorithm in the text with the pair-correlation matrix from Hamlet, 
compute the most probable diagram path which starts with the letter T"). The exercises run the 
gamut from random processes to the dynamics of motion, from entropy in language to the Water- 
gate problem. You'll discover BASIC applications in lasers and in the Fourier series and the law 
(!). In its diversity and elegant style, it ranks with Donald Knuth's works as a milestone in the art 
of computing. Hardcover $19.95. 

Computer Power and Human Reason by Joseph Weizenbaum. This book is one which should be 

purchased or read for several reasons. If you're presently a programmer by trade or skill, you'll see 
a philosophy of computer use and abuse propounded. It's genuinely interesting, and definitely 
provocative if you reference the storm of letters, counter letters and counter counter letters which 
this book produced in the Association for Computing Machinery's SIGART newsletters during 
1976. If you're a novice to the field, the tutorial and explanatory chapters of this book, which are 
aimed at the layperson, will serve as an excellent background source which is also eminently read- 
able. This includes an excellent and low level explanation of what an algorithm is, and how com- 
puters go about executing effective algorithms. $5.95. 

Praised by many critics as the best books in their field, The Art of Computer Programming, 
Volumes I, II and III, are part of a projected seven volume omnibus survey of computer science 
now being completed by Donald E Knuth. 

Volume I, Fundamental Algorithms, begins with a thorough discussion of the mathematics used 

in computer programming, followed by a treatment of information structures, stacks, arrays, 
linked lists, dynamic storage allocation, and trees. 634 pp. $21.95. 

Volume II, Seminumerical Algorithms, is concerned with random numbers, statistical tests, 

random sequences, as well as arithmetic (floating point and multiple precision), polynomials, and 
rational arithmetic. 624 pp. $21 .95. 

Volume III deals with Searching and Sorting, and as the name implies, the emphasis is on algo- 
rithms for sorting, including combinatorial properties of permutations, internal sorting, optimum 
sorting, and external sorting. Also included is a section on sequential searching, hashing, digital 
searching, and more. 722 pp. $21 .95. 

A hypothetical assembly language called MIX was developed by the author to illustrate pro- 
gramming examples throughout the series. MIX is easily convertible to other assembly languages. 

Professor Knuth writes with style and wit. This classic work belongs on the reference shelf of 
everyone seriously interested in computer science. 



Getting.^" 1 

With Your Own 

Compute 1- , 



THE THINKING COMPUTER 
Mind Inside Matter 



The 
First B»»|c«fK'4\ 



"* J i,«5»'*2. n i'5L 








PERIODICAL 

GUIDE 

FOR 

COMPUTERISTS 

let Ctimyiittr HoM>r»u 



problem-solving 

with 

the comiMitwr 



.»SffHwnnNwuM 



COMPUTER 
POWER 

AND 
HUMAN 
REASON 



FROM JUDGMENT 
TO CALCULATION 




For your convenience in ordering, please use this page plus the order form on page 99. You may photocopy this page. 
DIAL YOUR CHARGE CARD ORDERS TOLL-FREE 1-800-258-5477. 




*l 



Circle 35 on inquiry card. 



BYTE August 1978 103 




Photo 3: The Maillardet writing and drawing automaton sans clothes. The 
body of the figure is made from strips of brass and wire; the glass floor 
reveals the mechanism. A modern pen is shown in the automaton's hand. 
Courtesy Franklin Institute. 



A point which is obscure to me is that 
the letter forming cams are alleged to 
operate on a polar coordinate system. 
Suppose the letters are formed on X-Y 
coordinates. Photo 2 is a greatly magnified 
letter superimposed on a grid of 1 mm 
lines. Now you can appreciate the delicacy 
of the mechanism, for it is clear that a 
deviation of ±0.25 mm at any point will 
make a very different looking letter. (Inci- 
dentally, at a 40:1 lever ratio, a 0.25 mm 
movement at the pen is equivalent to 
0.00625 mm on the cam face.) Clearly, the 
letters as inscribed on paper are well within 
this deviation (see photo 1 and figure 2). 



The machine is about 30 
inches high and represents 
a child kneeling before 
a desk with pen in hand. 
It is capable of tran- 
scribing poetry and 
drawing intricate figures. 



Look how the es from several different 
words are exact duplicates: Probably the 
deviation is within about a tenth of that 
figure (ie: ±0.025 mm). 

The mechanism is analog, of course, but 
if it were digitalized, the scale applied (reso- 
lution) has got to be less than 0.025 mm per 
bit, or in a letter of 8 mm height and 4.5 
mm width: 



0.025 



4.5 
0.025 



320 bits for height 



= 180 bits width 



A grid of 320 by 180 equals 57,600 points, 
which would be the upper margin of the 
error. The limit is plus and minus this, so 
each letter may be digitalized with 57,600/ 
(2x2) = 14,400 points. But that is the 
amount for each letter, and we have 26 of 
them, which is 14,400 x 26 = 374,400. 
Adding upper case letters, the proper figure 
is 14,400 x 52 = 748,800 bits to digitalize 
the entire alphabet within the limits of error 
the machine consistently displays. You 
may wish to adjust the figures slightly be- 
cause not all letters are the size of the y, 
and hence do not require as much storage of 
information (see photo 2). However, many 
letters fall below the line, and the capitals 
are larger than all the lower case, so it evens 
out. We have not taken account of the 
stroke shaping bits, which might require 4 to 
6 more increments of information. Alto- 
gether, the machine's "read only memory" 
has over three quarters of a million 1 bit 
bytes stored within it! 

The Draftsman was constructed to re- 
semble the Writer, and works in practi- 
cally the same manner except that the 
tablet of paper is fixed, and the arm holds 
a pencil instead of a pen. The device moves 
under guidance of a cam cluster and draws 
designs in segments with pauses while the 
mechanism shifts from one cam pair to 
the next. During these pauses the Drafts- 
man blows a puff of air from his lips to 
disperse the graphite debris. I would esti- 
mate that there might be 20 or more cam 
pairs for each of the four designs (there 
are no depth cams) on a slip of paper about 
2 by 3 inches (5 by 7.5- cm). The designs 
were simplified reproductions of popular 
etchings of the age: cupids in chariots being 
hauled by butterflies, etc; and the head of 
Louis XV. The little Draftsman appears 
to have elicited a good deal more excitement 
than the Writer, but he was actually easier 
to construct, since the builders profited 
from their earlier experience with the 
Writer and simplified the mechanism. 



104 



AugliM 1978 ('.'BYTE Publications Inc 



Assume that the Draftsman's paper is 
50 by 75 mm, that any point on it could 
play a part in the design, and that it was 
necessary to provide a mechanism that 
could discriminate between lines as close 
together as 0.5 mm (ie: to a tolerance of 
± 0.25 mm). You end up with a grid of 
50/0.25 by 75/0.25 = 200 x 300 = 60,000 
points that may be encoded. These were 
parcelled out among 20 "read only mem- 
ory" cams. The total information con- 
tained in the machine would be 60 K bits 
by 4 designs = 240 K bits. The total in- 
formation storage was much less because the 
eye can accept more line deviation in a 
drawing than in the formation of a letter. 

The Musician is the triumph of automata 
that counterfeit life. She is 42 inches 
(1 .07 m) high, seated at her instrument with 
a pleasant expression on her face. Her 
clothing is rich satin brocade in the elaborate 
style of the period, and her coiffure is 
impressive. She consecutively plays five 
pieces on her instrument, a curious device 
rather like a harmonium but called by some 
accounts a flute-organ, suggesting tuned 
pipes instead of metal reeds. The keyboard 
consists of two arcs of keys, 12 on a side. It 
is double arc shaped because the musician's 
arms pivot at the elbows (concealed by lace 
sleeves on her gown) enabling her to cover 
all 12 keys with five fingers. The music, or 
most of it, was composed by Jacquet-Droz 
the younger, a musician who studied com- 
position with Marchal. 

She actually fingers the keys that produce 
the music! The mechanism to accomplish 
this feat consists of a connection for each 
digit, and some extremely clever devices 
must be employed to enable the arms to 
swivel while maintaining continuity for the 
digit controlling mechanism. I leave you to 
contemplate the delicacy of the arrange- 
ments of mechanism that trigger each finger 
in the tiny hands, but keep in mind that this 
machine is a workhorse; this musician has 
been playing music for 200 years. 

Her programmed movements arc star- 
tlingly lifelike in the accounts. All the 
Jacquet-Droz and Leschot automata turn 
their heads and move their eyes, but this 
automaton also raises her head to look at 
the audience, drops her gaze, takes a deep 
breath, and starts to play. She turns her 
head as she plays and, swaying from side to 
side as artists will do, breathes all the while. 
At the end of a piece she looks up and seems 
to smile, then shyly lowers her gaze, drops 
her head, and curtsies. 

Other Musicians 

In 1784 Maillardet, who was in business 



with Jacquet-Droz (fils) in London, intro- 
duced a new and improved version of a lady 
musician. She played a sort of piano, per- 
haps actually a harpsichord, and it is known 
that she had 17 or 18 melodies in her 
programming. She was lost in 1833 when 
sent to St Petersburg together with other 
automata. 

The Dulcimer Player of Roentgen and 
Kintzing first appeared in 1780, and was 
said by the magician Robert-Houdin (who 
repaired her in 1866) to have been de- 
signed to resemble Marie Antoinette and 
emulate her skill with the string dulcimer. 
This figure is famous for her beauty, and 
much praise has been lavished on her musical 
skill, for the instrument is clearly a difficult 
one to play (and is hardly known in this 
country). The mechanism is a cluster of 
cams mounted below the figure, concealed 
by her gown. 

J N Maelzel, mechanician to the Austrian 
court and later the proprietor of the Chess 
Automaton, personally designed and had 
built a life-size Automaton Trumpeter, 
which he exhibited beginning in 1808. It 
was destroyed in a fire, about 30 years 
later. At least two other trumpeters have 
existed. What remarkable mechanism they 
must have contained, especially in view of 



<<*> 




Don Lancaster's ingenius design provides software 
controllable options including: 

• Scrolling * Full performance cursor 

• Over 2K on-screen characters with only 
3MHz bandwidth 

• Variety of line/character formats including 
16/32, 16/64 ....even 32/64 

• User selectable line lengths 



TELL ME MORE! ( ) Send instruction manual for the TVT-6 Kit 
with full operational details. $1 enclosed. 
( ) SEND FREE CATALOG 

Name: 



Address: . 



. Zip: . 



ELECTRONICS, INC. city state: — 

DEPT. 8-b, 1020 W.WILSHIRE BLVD., OKLAHOMA CITY, OK 73116 j 



Circle 298 on inquiry card. 



August 197SOBYTE Publications Inc 105 



Note: 

A complete biblio- 
graphy for this part of 
"Antique Mechanical Com- 
puters" will appear with 
"Part 3: Human and 
Machine Action and the 
Torres Chess Automaton" 
in September 1978 BYTE. 



the praise their performances evoked. None 
survives. 

Maelzel invented and displayed, beginning 
in 1804, the Panharmonicon, a compound 
musical mechanism which produced the 
sounds of flutes, trumpets, drums, cymbals 
and triangle, and plucked strings, a menage 
then called Turkish music and much favored 
by the public. This machine was followed 
by his Orchestrion, imitating the sound of 
the military band (which had become popu- 
lar during the French Revolution). An 
improved Panharmonicon, with clarinets, 
violins, and violas added, was so well re- 
ceived that Maelzel commissioned music 
from Dussek, Pleyel, Weigl, and even 
Beethoven, whose "Wellington's Victory," 
opus 91, employing the Automaton Trum- 
peter as well as the orchestra, had its pre- 
miere on December 8 1813, in Vienna. 
These devices were the first of the pro- 
grammable multiple instrument machines 
so popular 75 years later. 

A Combination Automaton by Maillardet 

It was known that Maillardet, constant 
collaborator with the Jacquet-Droz and 
Leschot organization, had constructed a 
writing and drawing automaton about 1 81 1 , 
which was exhibited in London in 1815, 
and was owned by several persons until 
1833 when it was sent to St Petersburg 
where it disappeared. 

Long ago a resident of Philadelphia men- 
tioned to a staff member of the Franklin 
Institute that his family owned an auto- 
maton that drew pictures and wrote poems. 
He supposed it to be Maelzel 's work. When 
the owner's house was destroyed by fire, 
reducing the automaton to a "mass of 
cams and wheels," the museum acquired 
it, but it took immense patience and care 
on the part of the museum restorer, Charles 
Roberts, to make the machine completely 
whole. In the restoration process the sex of 
the automaton was changed. When the time 
came to sample the machine's program, it 
was found to be Maillardet's missing auto- 
maton (see photo 3 in this article and 
Charles Penniman's article, "Philadelphia's 
172 Year Old Android" in this issue, page 
90). 

The machine is about 30 inches (76 cm) 
high, and represents a child (originally a 
little boy, as alluded to in one verse, and in 
an 1812 encyclopedia article) kneeling 
before a desk and holding, since restoration, 
not a brush but a pen. The mechanism is 
in the base and consists of a common shaft 
holding about 60 cams, each one 6 inches 



(1 5 cm) in diameter. The whole is driven by 
a pair of powerful spring motors. Three 
triplets of cams are devoted to each of the 
seven productions of the automaton, except 
that the depth cams are minimally em- 
ployed. The follower arms, one for each 
dimension of the drawing, are jewelled 
and move from pair to pair of cams in the 
course of one machine cycle (one drawing). 
The automaton executes its seven produc- 
tions rapidly, completing one in 7 to 8 
minutes. This would appear to explain 
Maillardet's need to skeletonize the 60 
programming cams: they turn rather swiftly 
(about 3 mm of linear motion per second) 
and at changeover they must be brought 
quickly to a halt, then accelerated to work- 
ing speed again. Storing all information on 
three pairs of large cams per production 
would have made grinding the cam faces 
much easier, and would have minimized the 
effects of wear compared to a small cam. 
Shifting to a new program is done by simply 
sliding the common shaft laterally to set 
up a new triplet of cams. 

Maillardet evidently took it as his task to 
produce a machine that worked on its pro- 
ductions rapidly and casually, perhaps 
in the manner of a person inspired. The 
sketches are marked more by fluency of 
line than by precision, but they are very 
sophisticated, as a glance at the ship sketch 
will show (see page 91). The poetry is inter- 
esting and is done more in the manner of a 
design with scriptwriting than writing in 
script (see figure 2). 

In terms of brute force memory storage, 
if each of the points 1 mm apart on an 89 by 
1 20 mm paper is to be stored, 1 0,680 points 
would be required. But discriminating be- 
tween points with an error of no more than 
1 mm requires ± 0.5 mm precision, result- 
ing in 42,720 points that must be stored on 
the three triplets of cams. But this is the 
amount of point storage required for one 
production. There are seven of them, so the 
total storage capacity within the machine is 
42,720 x 7 = 299,040 points (with ±0.5 mm 
precision). This figure, the digital equivalent 
of the analog storage, begins to make the 
impressive forest of cams seem more useful. 

All of the above speaks about the infor- 
mation capacity (in terms of a grid of 
points) necessary to encode the designs and 
script that our automata can produce by 
analog means. The great majority of those 
digital data would not be employed in a 
display, just as an automaton will not in- 
scribe marks on, say, more than 2 percent 
of the area of paper available to it. There is 
a lot of wasted (unused) space in any charac- 



1 06 August 1978 © BYTE Publications Inc 



ter generator. For example, most of the 
billions of micrograins of silver halide in a 
sheet of emulsion are not actually developed 
and play no part in a photographic negative. 

The same is true of standard character 
generator read only memories where the 
5 by 7 matrix with its 35 points is the 
absolute minimum matrix you can employ 
and still produce recognizable, if not particu- 
larly legible, alphanumerics. Even so, 50 
percent of these bare minimum 35 points 
are not utilized for any given character, 
hence there is 50 percent waste. Premium 
character generator read only memories are 
set up to use a great many more points, and 
their displays are still manifestly coarse in 
structure ("crude" would not be too strong 
a word, when you know there is something 
much better). 

Here we are simply making visible the 
difference between analog and digital modes 
of storing information. The analog mode is 
obviously more economical, for there are 
nowhere near 750,000 jiggles in 20 cams. 

Next month, we'll conclude with a final 
example in this series about antique auto- 
mata, the chess playing robot of Torres 
(circa 1911) and some philosophical com- 
ments on automata." 



Circle 31 1 on inquiry card. 



COMPUTE YOUR 
SAVINGS" 



OUR 

LIST CASH 

PRICE PRICE 



999 00 799 00 



14900 -12495 



74900 

699 00 



624 95 
569 95 



644 ! 



95 



S.D. Sales 64K Memory Kit 

S.D. Sales Versafloppy 
Disk Kit 

Vista Mini Floppy — 
Assembled 

IMS A 1 8080 Kit 

IMSAI 8080 Kit with S.D. Sales 
Expandoram 32K Kit with 
8K of Chips 850°° 

Ask About Our Prices on 

North Star, Vector Graphic, Cromemco, 
Solid State Music, TDL, Mullen. 

Quantities Limited. Shipping and Insurance Extra. 
Prices Quoted Include Cash Discounts. 

Bus....5-IDD,inc. 

Address... 7 White Place 

Clark, N.J. 07066 

Interface... 201-382-1318 



BASIC is BASIC is ... 



And BASIC does what it should. But if you're ready to step up 
from Beginner's All-purpose Symbolic Jnstruction Code, look 
at OPUS, the high-level 8080/Z80 language from A.S.I. ...roots 
in BASIC, but designed for business applications. OPUS gives 
you the capabilities you need, like extended precision, string 
handling, and easy formatting. OPUS/TWO takes up where 
OPUS/ONE leaves off, allowing subroutines, overlays, and 
extended disc file management. 

But we didn't stop there. OPUS programs and data are 
directly upward-compatible, all the way up through TEMPOS, 
A.S.I.'s multi-user, multi-tasking operating system. 

Ask your dealer, or contact A.S.I. We'd like to tell you more. 



OPUS/ONE $99.00 

S.O.S $385.00 



OPUS/TWO $195.00 

TEMPOS $785.00 




□ □ 

-_== ADMINISTRATIVE SYSTEMS, INC. 

IIJ 1642 S. Parker Road, Suite 300 
nn Denver, Colorado 80231 (303) 755-9694 



ORDER A MANUAL NOW and we'll apply the price 
toward your software purchase. 

OPUS User's Manual $12.50 

S.O.S. Manual Set (includes OPUS Manual) $20.00 

TEMPOS Manual Set (includes OPUS Manual) . . $20.00 

MASTER CHARGE and VISA accepted. 

Add $1.50 per manual (set) for shipping/handling in U.S. 



Circle 4 on inquiry card. 



August 197SOBYTE Publications Inc 107 










EXCITING 

That's the word that sums up the dynamic small computer show in New 
York that was established last year at the Coliseum. The lecture areas were 
filled by interested people, the exhibits were great, the attendance was the 
highest of any small computer show in the country. 

The big point is that everyone who came went away happy. Accountants, 
hobbyists, lawyers, doctors, brokers, retailers, business people, program- 
mers, research scientists and just plain homeowners. 

The second big point is that we're doing it again. This time, bigger and 
better. Top seminars, top exhibits. -^^— ^m^m ^ m ^■^■^h ^hm 
Small computers from $500 up, m 
software and kits. 



Save time. 

Get your tickets 

in advance by mail. 



I 



H 



NAME 



ADDRESS 



(please print) 



State 



Zip 




PERSONAL & BUSINESS 
SMALL COMPUTER SHOW 

78 East 56th Street, New York, N.Y. 10022 



I 

I 
I 



City 

Send me tickets in advance for Personal & Business Small 
Computer Show, Sept. 15-17, 1978, in the New York Coliseum. 

(Check One) One Day ($5)_Two Days ($9)^ Three Days ($13)_ 

Send check or money order (U.S dollars) payable to 
Personal & Business Small Computer Show to 78 E. 56th St., 
New York N Y 10022 



I 
I 
I 

I 
I 



108 BYTE August 1978 



Circle 267 on inquiry card. 




NEW YORK! FREE SEMINARS 



Personal & Business Small Computer Show offers the following: 



INTRODUCTORY 

Introduction to Small Business Systems 
Interlacing to the Real World 
Introduction to BASIC 
Hardware/Sottware/Systems Tutorial 



RECREATIONAL APPLICATIONS 



Robotics 

Music 

Computer Games 

Art. Graphics & Animation 



SOFTWARE 

Data Bases & File Handling 

Introduction toCP/M 

Introduction to PASCAL 

Introduction to APL 

SBS A New Data Base Manager. Language and Operating System— a Sotlware 

Breakthrough that Gives Minicomputer Power to a Micro — lor Business 

Applications. Irom Computer Mart of New Jersey 



HOUSEHOLD APPLICATIONS 

Budget Managemenl 
Investment Analysis 



PROFESSIONAL APPLICATIONS 

Patient & Client Billing 



SMALL BUSINESS APPLICATIONS 

Text Editing/Word Processing 

General Ledger/Ace nts Receivable & Payable 

Mailing Lists 



EDUCATIONAL APPLICATIONS 

Light Pen Graphics 
Simulations & Gaming 



All seminars run about 50 mins. and are scheduled twice. Write lor daily and hourly schedules, special hotel rates, etc. Lectures subject to change. 



NEW YORK! AVAILABLE TUTORIALS 



IEEE COMPUTER SOCIETY 

Tutorials are offered by the IEEE Computer Society in conjunction with For further information on the technical background required the con- 
the show. Each tutorial costs as follows: members, $45; non-members, tent of the tutorials, or the IEEE, write to Dr Daniel R McGly'nn 71 N 
$50, and students, $35. Moger Ave., Mt. Kisco, N.Y. 10549 

5 TUTORIALS BY SYBEX 



Microcomputer Selection— Sept 16 
Intro to Microprocessors — Sept 15 
Programming Microprocessors — Sept 16 
Designing a Microsystem— Sept 16 
"Interfacing Techniques — Sept 17 

'Prerequisite— Intro to Microprocessors 



All Sybex tutorials run for three hours Cost is $29 95 each up to Sepl 8 
$35 each at Ihedooi All are given in the Coliseum Show ticket is needed toi 
entry Please use coupon tor advance ticket 

(For registration and more details write to Sybex. 2020 Milvia. Berkeley. CA 
94704) TEL' (415)848-8233 



GENERAL ATTENDANCE INFORMATION 



The show will occupy the fourth floor of the New York Coliseum located 
at 59th St. & Columbus Circle. There is a parking garage in the building 
and the site is served by many subway lines and buses. 
Visitors from out of town may obtain special hotel rates from our head- 
quarters hotel, the Barbizon Plaza, just two blocks from the show. 
Singles $44, doubles $52. Identify yourself as attending the show and 



request those rates. 

Admission to the show at the door is $5.00 per day, per person. Discount 
tickets for groups of ten or more available in advance only by mail at $4 
per person per day. Enclose check or money order for all ticket orders 
payable to Personal & Business Small Computer Show. For further infor- 
mation call (212) 753-4920. 




PERSONAL Sl BUSINESS SMALL COMPUTER SHOW 



rbEASToolHSiHEET 
NEW YORK, NY 10022 



New York Coliseum 
Sept. 15-17, 1978 



SHOW HOURS 

Sept !5 -icon leap re 
Sepl. 16— 10a.m. to8p.m 
Sept. 1 7 — noon to 7 p.m. 



BYTE August 1978 109 



Languages 
Fopum 



In Praise of PASCAL 



David A Mundie 
104B Oakhurst Cir 
Charlottesville VA 22903 



As has been pointed out in these pages 
before, personal computing will never 
achieve its full potential as long as our 
state of the art machines are hobbled down 
with a language as far from state of the art 
as BASIC is. Some have argued for designing 
a special high level language for micro- 
processors, but I personally fail to see why 
we don't just implement PASCAL and be 
done with it. I would like to look briefly 
at the language itself and try to explain why 
it seems the logical choice to me. 

I am an applications programmer with no 
theoretical interest in computing whatso- 
ever. What I like about PASCAL is not the 
theory of its design, though that seems 
sound enough, but rather the fact that it 
lets me formulate my problems in my own 
terms. In PASCAL more than in any other 
language I know, I can remain on the ab- 
stract, algorithmic level where, as a human 
being, I function best. Because of this 
pragmatic bias, much of what follows will 
be an informal discussion appealing to the 
reader's intuitions rather than a technical 
demonstration. I shall use BASIC for com- 
parative purposes, since it is the tyrant in 
the field. 

I find PASCAL easy to use because it 
allows me to define new data types which 
express my data meaningfully. It provides 
control structures with which I can express 
what I want done to my data clearly and 
naturally. PASCAL allows and encourages 
me to formulate my thinking in a structured 
way. Let us examine these three aspects of 
PASCAL in reverse order. 

Program Structure 

PASCAL is a resolutely structured 
language. A PASCAL program is structured 
into blocks. Each block bears a heading 
which gives it a name and specifies its 
parameters. Roughly speaking, a block 
consists of a definition part, in which 
constants, types, variables, and subroutines 
are defined, and an action part, which con- 
tains the algorithm of the block. This 
rigorous separation of data definition and 



algorithm expression is partly responsible, 
it seems to me, for the greater legibility of 
PASCAL compared to ALGOL. 

Subroutines are themselves block struc- 
tured and may thus be nested within one 
another. This allows the declaration of 
"local" variables and subprograms, meaning 
that storage may be allocated efficiently; 
yet it is easy to guard against unwanted side 
effects. 

What does all this mean for the practicing 
programmer? The answer may perhaps best 
be seen in the light of a claim recently re- 
peated by David Higgins in the October 
1977 BYTE ("Structured Program Design," 
page 146). Higgins presents the now well 
established arguments in favor of structured 
programming, but goes on to contend that 
once a program is designed in a structured 
way, using for example Warnier-Orr dia- 
grams, "it does not matter what program- 
ming language you code it in." This assertion 
seems pretty improbable on the face of it, 
and if true it would be a powerful argument 
against PASCAL. I think that a rapid ex- 
amination of two test cases will show it to 
be quite unjustified. 

Let us take our test cases from the "bug" 
program which Higgins uses as his own 
example. Higgins would have us break the 
program down into three parts, as expressed 
in the following Warnier-Orr diagram: 



bug program 



i begin pro 
< games (1 , 
( end progr 



rogram 

g) 

gram 



Nothing in the BASIC listing which accom- 
panies the article even remotely suggests 
this overall algorithm. Look at what we 
might have in an equivalent PASCAL 
program. 

program bug; 
begin 

beginprogram; 
games; 
endprogram 
end. 

Need I point out that to all intents and pur- 
poses the PASCAL program is the Warnier- 
Orr diagram, with only a few notational 



110 



August 1978 © BYTE Publications Inc 



Circle 143 on inquiry card. 



SAVE THE WHALE 

The world's best computer may be inside a Sperm Whale's head. 

The Sperm Whale has the largest brain of any creature that has ever existed 
on our planet. The brain of this 18-meter marine mammal weighs up to 9 kilograms. 
It uses echo-location to find giant squid at ocean depths of over 1,000 meters. 
More than 13,000 sperm whales are scheduled to be slaughtered this year 
by agreement of the International Whaling Commission. 

The CONNECTICUT CETACEAN SOCIETY is a small, totally volunteer, 
non-profit education and conservation organization dedicated 
to seeking the abolition of all whale killing. Any 
concerned citizen can help our efforts by sending 
name and address and a $10 or more contribution to 
CCS, P.O. Box 145, Wethersfield, CT 06109. 




There are two mountain peaks 
of evolution on planet earth: 
on the land, homo sapiens- 
human beings; in the sea, 
cetaceans- whales, dolphins, 
and porpoises. 



Drawing bv 
Don Situti 



Spring into Season 
with a BYTE T-shirt 




At last! No more wardrobe crises! BYTE T-shirts are here! 
Now you have the perfect garb for computer club meetings, 
Altair Conventions, playing Shooting Stars and computer 
chess. (A pair of trousers from your own closet is suggested 
as an addition to the BYTE T-shirt. BITS can't do every- 
thing for you.) 

BYTE T-shirts are of top quality 10 0% cotton or cotton- 
polyester. The original design, by artist Judy Lee Rehling, is 
silk-screened in red on white shirts with blue trim on collars 
and sleeves, or on blue heather shirts. 



BITS, Inc. 
70 Main St. 
Peterborough NH 03458 



Dial charge card orders toll free 1-800-258-5477. 



Please send mt 



.extra large 
-large 
.medium 
.small 



Total enclosed $ 

Bill MasterCharge No 

Bill BankAmericard No.. 

Name 

Address 

City 



.blue heather 
. white with blue trim 
and red letters 

T-shirts @ $5.50 each 
(includes postage and 
handling). 

Exp. Date 

Exp. Date 



I 

I 

Signature. 



.State. 



-Zip- 



I 



In unusual cases, processing may exceed 30 days. 
Prices shown are subject to change without notice. 



Circle 38 on inquiry card. 



BYTE August 1978 111 



r 



BEGIN TURN 



ROLL - "I" 
(0.11 



O 



ROLL ■ "2" 
(0,11 



O 



ROLL = "3" 
10.1] 



=IN J 



o 



ROLL = "4" 

10,1] 



o 



ROLL - "5" 
(0.11 



o 



ROLL - "6" 
(0.11 



V 



differences such as the replacement of the 
brace by the symbols begin and end? Are we 
really asked to believe that this one to one 
correspondence between the problem and 
the program does nothing to simplify the 
programming task? On the contrary, it 
simplifies matters enormously. 

Considerations of space prevent me from 
giving the rival BASIC and PASCAL versions 
in full. Another striking example is pre- 
sented in figure 1 and listings 1 and 2, 
which show the Warnier-Orr diagram for the 
"turn" subprogram, Higgins' coding of the 
subprogram in BASIC, and the PASCAL 



ROLLTHE DIE 



PLAYER ALREADY HAS A BODY 
(0,11 



o 



PLAYER ALREADY HAS A BODY 
10,11 



HAS BODY 
(0,1) 







< 



O 



V 



HAS BODY 
10,1) 



HAS NECK 
(0,11 







o 



HAS NECK 
(0,11 



HAS HEAD 
(0,1) 



2 ANTENNA 
10,1) 



o 



o 



HAS HEAD 
(0,11 



HAS BODY 
(0,1) 



2 ANTENNA 
(0,11 



HAS TAIL 
10,1) 



o 



o 



HAS BODY 
(0,1) 



HAS BODY 

(0,1) 



HAS 6 LEGS 
(0,1) 



o 



o 



HAS6 LEGS 
(0.1) 



HAS BODY 
(0,1) 



{ 

■i GIV 

{ 

< GIV 

{ 

■< GIV 

{ 

-I GIV 

{■ 

■J GIV 

{ 

■1 GIV 



E PLAYER A BODY 



E PLAYER A NECK 



E PLAYER A HEAD 



E PLAYER AN ANTENNA 



E PLAYER A TAIL 



E PLAYER 1 LEG 



Figure I: Warnier-Orr diagram for subprogram "turn" of the bug program. 
This is clear, but note how much bulkier it is than the PASCAL program in 
listing 2. The Warnier-Orr diagram won 't even run on a computer. 



equivalent. Higgins calls his BASIC coding 
"simple and straightforward." Tastes differ 
but that is a phrase I would have reserved 
for the PASCAL version. Higgins has had to 
fake truly structured programming in a 
language which fights his efforts every step 
of the way, and the results are tortured 
and confusing. In contrast, the PASCAL 
coding is, once again, a nearly perfect 
reflection of the Warnier-Orr diagram, so 
much so, in fact, that most PASCAL users 
will probably feel, as I do, that the diagrams 
are a useless intermediary step, less clear 
and bulkier than the program itself. The 
intent of the PASCAL program segment is 
so transparent that in my opinion it could 
almost be understood by a complete pro- 
gramming novice. 

Before leaving the topic of program struc- 
ture, we should perhaps remark that PASCAL 
subprograms (procedures and functions) 
bear names, not numbers, virtually elimina- 
ting the need for the comments which 
pepper any well documented BASIC listing. 
Furthermore, because PASCAL subprograms 
can have parameters, the programmer is 
encouraged to use a single subprogram for 
a single task. Higgins has written separate 
subprograms for each body part, whereas 
for a PASCAL user it is virtually impossible 
to resist the temptation of passing the 
arrays body, neck, head, etc, to a single 
procedure "give" as parameters. 

Algorithm Expression 

Program structure alone does not explain 
the relative clarity of the PASCAL listing 
in listing 2. We may also use that listing to 
illustrate the tools which PASCAL provides 
for expressing algorithms. 

Logical operators: PASCAL provides the 
logical operators (and, or, and not) which 
are so painfully lacking in BASIC and with- 
out which expressing an algorithm is so 
clumsy. The use of the operator and in the 
turn subprogram is a good example; or the 
reader may want to express "if (x=1 ) or 
((y>2)and(z=3)) then. . ." in BASIC. 

Conditional statements. PASCAL'S if 
structure groups statements with the condi- 
tions for their execution. The if statement is 
of the form: 

if<expression> 

then<statement_1 > 
else<statement_2> 

The expression is evaluated as being either 
true or false. If it is true statcment_l is 
performed; otherwise statements is per- 
formed. Suppose the expression is: X=l. 
In English the if statement translates to: 

if X equals 1 then perform state- 
ment^ ; else perform statement_2. 



112 August 1978 © BYTE Publications Inc 



PASCAL offers a very flexible case state- 
ment which is remotely related to the com- 
puted GOTO statement to be found in some 
BASICs. It is much more powerful because, 
among other things, selector values need 
not be contiguous, and actions are grouped 
with the conditions for their execution. 
A good example of the case statement's 
clarity is to be found in the procedure 
"turn," where the action taken depends 
on the value of roll. 

Repetitive statements: BASIC provides 
only one repetitive control structure: the 
FOR statement. But there are innumerable 
situations where we do not know ahead of 
time how many times a. given action is to 
be repeated. In such cases BASIC users have 
two choices. One is to set up a dummy 
FOR statement with a jump out of it when 
a certain condition is met: whence the 
ubiquitous "FOR 1=1 TO 9999" statements 
in BASIC programming. This is bad because 
it seriously disguises the intention of the 
algorithm. One's natural expectation is for 
such a loop to be executed 9999 times, but 
that is not the case. The other solution is 
for the programmer to fake an appropriate 
control structure with GOTOs or condi- 
tional jumps. That is what Higgins has done 
in his program to express the fact that the 
computer and the human take turns until 
the game is over: 

210 REM TURNS (1,T) 

220 LET EGAM = 

230 GOSUB 390 

240 IF EGAM = THEN 230 

250 REM END GAME 

260 GOSUB 1150 

This is no doubt the best one can do in 
BASIC, but just consider how much more 
elegant the PASCAL version is: 

repeat turns until endofgame 

This is typical of the way in which 
PASCAL'S control structures make al- 
gorithm expression a source of joy rather 
than a contortionist exercise. In addition to 
the repeat statement, PASCAL offers a 
while statement for the case when an action 
is to be repeated as long as a condition is 
true. 

Data Definition 

Now that we have seen how much easier 
it is to express what one wants done to data 
in PASCAL than in BASIC, let us turn to 
the wonderful data types which PASCAL 
makes available for manipulation. Data types 
are the programmer's buffer between his 
abstract formulation of an algorithm and the 
messy realm of bit level details where that 
algorithm will eventually be executed. 
PASCAL makes defining new types a trivial 



task. Once a new data type is defined, it 
is in effect indistinguishable from a pre- 
defined type and may be used in any way a 
predefined type may be. We leave BASIC 
behind at this point, since that language 
has no facilities for creating new types. 

The bug program was too simple to 
provide examples of data structuring, so 
we shall have to turn elsewhere. Being a 
birdwatcher, I shall replace the traditional 
"Christmas card list" example by a bird data 
bank. I can do no more than skim the sur- 
face, so I ask the reader's indulgence if some 
of the listings are not fully explained. I 
am not trying to teach PASCAL, but merely 
to spark intuitions. 

PASCAL distinguishes between simple 
and structured types. Let us examine each 
in turn. 

Simple types: These are the basic build- 
ing blocks of which any structured type, 
no matter how complex, is ultimately com- 
posed. In addition to integer, real, and 
character types, PASCAL offers two addi- 
tional simple types which as far as I'm con- 
cerned come close to exhausting the simple 
types needed in a general purpose language. 
The first is the defined scalar type, and is 
defined by simply listing the values which 
a variable of the new type may take on. 



490 REM TURN SUBROUTINE 

500 REM PLAY=1 PLAYERS TURN-PLAY=2;COMPUTERS TURN 

510 REM ROLL DIE 

520 LET ROLL = FIXd>(((RND(0))*6.0))+l 

530 PRINT:"ROLL IS A", ROLL 

540 IF ROLL = 1 THEN IF BODY(PLAY) = l THEN GOSUB 690 ELSE;ELSE; 

550 IF ROLL = 1 THEN 650 

560 IF ROLL = 2 THEN IF BODY(PLAY) = 1 THEN IF NECK(PLAY) = 1 THEN GOSUB 760 

570 IF ROLL=2 THEN 650 

580 IF ROLL=3 THEN IF BODY(PLAY)=l THEN IF NECK(PLAY)=1 

THEN IF HEAD(PLAY)~1 THEN GOSUB 820 
590 IF ROLL=3THEN 650 
600 IF ROLL = 4 THEN IF HEAD(PLAY)=1 THEN IF ANTE(PLAY) =2 

THEN GOSUB 880 
610 IF ROLL=4 THEN 650 

620 IF ROLL = 5 THEN IF BODY(PLAY)=l THEN IF TAIL(PLAY)-1 THEN GOSUB 940 
630 IF ROLL=5 THEN 650 

640 IF ROLL = 6 THEN IF BODY(PLAY) = l THEN IF LEGS(PLAY)---"6 THEN GOSUB 1000 
650 LETA=3 
660 RETURN 

Listing 1 : BASIC listing for Warnier-Orr diagram in figure 1. This is the best 
one can do in BASIC, but is still a far cry from the clarity of the PASCAL 
listing. 



procedure turn; 
begin rol I :=trunc( random (1 1*6)+1 ; writelnl'roll is a'.roll); 
case roll of 

#1 (then give(body); 

= 1 )and(neck[player] #1 ) then give(neck); 

= 1 land (head [player] 1=\) then give (head); 

= 1 )and(ante[player] =£2) then give(ante); 

= 1 )and(tail [player] 

= 1 )and(legs[player] 



1: if (body [player] 

2: if (body [player] 

3: if(neck[player] 

4: if(head[player] 

5.' if (body [player] 

6: if (body [player] 
end 
end; 



t*1 ) then giveitail); 
7^6) then give(legs) 



Listing 2: The PASCAL listing equivalent to listing I. Note the clear affinity 
between the listing and the Warnier-Orr diagram. Notice that arrays are in- 
dexed using square brackets. 



August 1978 © BYTE Publications Inc 113 



Suppose I need a data type for the various 
habitats in which a bird may appear. In 
PASCAL I write: 

type h = (ocean, rivers,fields,suburbs,forests, 
mountains) 

A variable of type h may take on any of 
the values listed. This means that while 
programming I may continue to think in 
terms of habitats, and am not forced to 
descend from that abstract level and think 
in integers, as I would have to do in BASIC. 
This also makes for virtually self-explanatory 
programs. Compare "IF HABITAT=3 
THEN. . ." with the much more transparent 
"if habitat=fields then. . . ." 

The second simple data type is the 
Boolean, and is extremely useful in pro- 
gramming since one is constantly control- 
ling program flow with Boolean expressions. 
Boolean variables take on the values true 
and false. Languages without such variables 
must make do with integers, which muddles 
things since one's natural expectation is for 
integers to count something. The PASCAL 
user may simply write "if good then. . .", 
which is the way we think; the BASIC 
programmer must write "IF GOOD = 1 
THEN. . .", which is alien to the way we 
think. 

A large part of PASCAL'S elegance comes 



NORTH STAR BASIC PROGRAMS 

HUNDREDS SOLD, EACH SYSTEM COMPLETE ON DISKETTE 
READY TO RUN. WORD PROCESSING, NORTH STAR TUTO- 
RIAL I, NORTH STAR TUTORIAL II (TEACHES NORTH STAR 
BASIC), ACCOUNTS PAYABLE, ACCOUNTS RECEIVABLE, 
PAYROLL, GENERAL LEDGER, MEDICAL-PROFESSIONAL, 
BILLING, SALTS WITH SALES ANALYSIS AND GROSS PRO- 
FIT, INVENTORY, HISTOGRAM GENERATOR, COMPUTER 
CHESS, MAILING LABELS. $35.00 each. 

SOFTWARE LOCATER (LOCATE, INDEX-FREE SOFTWARE), 
CHECKBOOK BALANCING, BOWLING-GOLF HANDICAPPER, 
COIN COLLECTION INVENTORY, IMPORTANT DOCUMENT 
LOCATER, BUDGET PLANNER, GAME DISK. $25.00 each. 

IQ TESTER, COMPUTER MEMORY DIAGNOSTIC PERSONAL 
FINANCE, BUSINESS FINANCE, BIORHYTHM GENERATOR, 
DIET PLANNER, CRYTOGRAPHIC ENCODER, MATH TUTOR, 
A SORT UTILITY. $15.00 each. 

EQUIPMENT REQUIRED, SINGLE DRIVE, 8K FREE MEMORY, 
PRINTER OPTIONAL. 

TRS-80 LEVEL I & II (ON CASSETTE) STOCK MARKET ANALYSIS, 
GRAPHICS, TREND LINE ANALYSIS, BUSINESS APPLICATIONS. $15.00. 

BLANK DISKETTES $3.80 (UNDER TEN ORDERED, ADD $2.00 FOR 
SHIPPING; OVER TEN SHIPPED POSTPAID). 

CPM COMPATIBLE BASIC PROGRAM LISTINGS ALSO AVAILABLE. 



DP 



SOFTWARE 

DEPT. 11 P. O. BOX 2528 
ORANGE, CA 92669 



from the fact that in most contexts these 
simple or scalar types may be used indif- 
ferently. Thus for example the type h as 
defined above could be used as the index 
variable in a for statement: 

for habitat := ocean to mountains do 

or in a case statement, or as the index type 
of an array : 

if foundin [fields] then 

Furthermore, functions may return any 
scalar type: we have already seen the func- 
tion "endofgame" which returns a Boolean 
value. 

Structured types: In addition to the 
simple types, PASCAL offers five different 
structuring methods: arrays, records, sets, 
files, and pointers. These different methods 
may be combined in virtually limitless 
ways. One may have files of arrays, pointers 
to records, arrays of sets, pointers to files 
of arrays of records, and so on. This extreme 
flexibility of data structuring methods is 
one of PASCAL'S most exciting features. 
The type array should be familiar, but let 
us look briefly at the other four structured 
types. 

Sets: Each bird in my hypothetical data 
bank has associated with it a set of habitats 
in which the bird may be found. Having 
defined the type h as above, all I need to do 
to set up a variable habitats which will be a 
set of different habitats is to write: 

vat habitats: set of h 

When constructing the entry for the robin, 
I will write: 

habitats := [fields.suburbs] 

thus assigning to the robin the set of habitats 
containing the two elements fields and 
suburbs. When going on a trip to the moun- 
tains, I can test whether mountains are in a 
given bird's set of habitats by the following 
simple test: 

if mountains in habitats then 

Imagine trying to do this in BASIC. PASCAL 
provides a variety of set operators which 
allow set manipulation in all its generality. 
Records: Let us imagine that each entry 
in my data bank will contain the bird's 
name, its length, and a set of habitats where 
it may be found. The entry cannot be an 
array, since components of arrays must all 
be of the same type. The appropriate data 
type is the record, defined in PASCAL as 
follows: 



type bird = 



record 

name: string; 
length: real; 
habitats: set of h 
end 



114 August 1978©BYTE Publications Inc 



Circle 6 on inquiry card. 



Everything you've ever 

wanted to know about 
microcomputers in 

ONE complete book 

for only $10.95 



Over 400 pages. Full 8V2" x 11" size. 



The ultimate book 
about microcomputers. 
Written by experts 
. . . SCELBI and BYTE. Over 
400 pages. A collector's item, 
featuring The Basics 

from the first 16 issues of BYTE and SCELBI's 
classic library of books. Your microcomputer 
bookshelf is incomplete without this priceless edition. 




You can't buy information 
organized like this any- 
where. This is the book 
that everyone who is into micro- 
computers needs for reference, 
for ideas, for clues to problem 
solving. It is a truly authorita- 
tive text, featuring easy-to-read, 
easy-to-understand articles by 
more than 50 recognized pro- 
fessional authors, who know and 
love microcomputers from the 
ground up. Logical and com- 
plete, it features many glos- 
saries, and is illuminated with 
profuse illustrations and photo- 
graphs. 

The Scelbi/BYTE Primer is 
divided into four logical sec- 
tions, that take you from point 
"0" through building and pro- 
gramming your own computer. . . 
step-by-step-by-step. 

What can you do with a micro- 
computer? Checkbook balanc- 
ing. Recipe converting and food 
inventory. Heating and air condi- 
tioning control. Home and busi- 
ness security and management. 
Playing the ponies. Analysis of 
the stock market. Maintaining 
massive data banks. Self-instruc- 
tion. Toys and games. Small 
business accounting and inven- 
tory. And lots, lots more. 

Circle 322 on inquiry card. 



How does a microcomputer do 

it? Lots of "how to" theory. In- 
troducing you to microcomputer 
operation. 6800, 6502, Z80 CPU 
chip capabilities. RAM and ROM 
memories. Addressing methods. 

VHIIIIUI 
BMIHV 

Over 400 pages. Selected articles 
from BYTE and SCELBI books. 
Profusely illustrated. Many 
photographs. $10.95, plus$l 
shipping and handling. 

How to control peripherals. 
Transmission of information to 
and from computers. Magnetic 
recording devices for bulk stor- 
age. Analog to digital conver- 
sion. How a computer can talk. 
Other I/O techniques. And more. 



Order your copy today! 


SCELBI COMPUTER 




CONSULTING INC. 


BITS 


Post Office Box 133 PP STN 


70 Main Street 


Dept. B 


Peterborough, NH 


Milford, CT 06460 


03458 




1-800-258-5477 



Prices shown for North American customers. 
Master Charge. Postal and bank Money 
Orders preferred. Personal checks delay 
shipping up to 4 weeks. Pricing, specifica- 
tions, availability subject to change without 
notice. 



*•"•»«» 



All about building a micro- 
computer system. Over 12 com- 
plete construction articles. Flip- 
flops. LED devices. Recycling 
used ICs. Modular construction. 
Making your own p.c. boards. 
Prototype board construction. 
Make your own logic probes. 
Construction plans for 6800 and 
Z80 computers. Building plans 
for l/Os — TV and CRT displays, 
cassette interfaces, etc. Mathe- 
matics functions. ROM program- 
mer. Plus much, much more. 

How to program a micro- 
computer. Programming for the 
beginner. Assembling programs 
by hand. Monitoring programs. 
Number conversions. Game of 
Hexpawn. Design your own as- 
sembler. Lots more. 

And that's only the beginning! 
Others have spent millions ac- 
quiring the type of microcom- 
puter information found within 
the 400 pages of The Scelbi/ 
BYTE Primer. But, it costs you 
only $10.95, plus $1 for postage 
and handling, complete! You 
know the quality of Scelbi and 
BYTE. This is your assurance of 
excellence throughout this MUST 
text. Order your copy today! And, 
get one for a friend! 

BYTE August 1978 115 




This is a simple and logical way of grouping 
data of different types into a meaningful 
whole. Given variables robin and redbreast 
of type bird, a simple assignment statement 
will set one equal to the other: 

robin := redbreast 

To test whether a robin is more than 20 cm 
long, we would have: 

if robin. Iength>20 then 

and so on. These are simple examples, but 
they suffice to illustrate the flexibility of 
the record type. 

Files: Now let us suppose that I have 
600 entries of type bird in my data bank, 
and want to make a list of all the birds 
whose length is greater than 20 cm. It is 
pointless and wasteful to keep all 600 
records in memory for such a task; all I 
really need is to store them in mass storage 
and read them in one at a time. In PASCAL 
what I do is declare a file of records as 
follows: 

var fb: file of bird 

Now, supposing the file to have been written, 
all I need to perform the task is: 

reset(fb) ; 

repeat if fbt .length>20 

then writeln(fbt .name) ; get(fb) 
until eof (fb) 

Reset positions the File at its beginning; get 
advances it one record; fbt is the buffer 
variable containing the current record; and 
the writeln statement prints the bird's name. 
The Boolean function eof tests for the end 
of the file. 

Pointers: Finally, let us suppose that I 
wish to update the data bank by deleting a 
bird. It is of course possible to do this by 
storing all the records in an array, but this 
is clumsy and inefficient, since all the 
records following the deleted record would 
have to be shifted one position. List proc- 
essing provides a much better solution. The 
records arc linked together into a list by 
inserting a pointer field "next" into each 
record. Each record will then "point" to 
the record following it in the list. Deleting 



Figure 2: A linked list of records of type 
"bird" with addition of the pointer field 
"next. " Deleting the third record is a simple 
mailer of changing a poinici field, as shown 
by the dotted line. 



a record becomes the simple matter of 
changing a single pointer value as illustrated 
in figure 2. Given the pointer "current" 
pointing to the item just before the one to 
be deleted, the following simple statement 
will do the trick: 

currentt .next := current! .next! .next 

Adding a new record is only slightly more 
complicated. 

Let me repeat that these simple examples 
are not meant to do more than provide a 
brief glimpse of the marvels of PASCAL'S 
structured types. For full explanations 
the reader is referred to the texts in the 
bibliography. 

Conclusion 

Rapid though it has been, I hope that this 
survey of PASCAL will have brought out 
some of the features which make it vastly 
superior to BASIC. BASIC offers an ab- 
solutely minimal set of features and expects 
you either to devise makeshift solutions or 
to design a new version of the language 
when they are inadequate. No wonder there 
are so many different versions of BASIC. 
PASCAL offers a somewhat wider selection 
of features, but avoids the pitfall of trying to 
include every feature known to humanity. 
PASCAL is a simple and streamlined 
language: the PASCAL Report defining 
the language is a mere 32 pages long. Yet 
PASCAL'S designers seem to have chosen 
just those features which the user needs to 
expand the language when the need arises, 
so that it is a genuinely general-purpose 
language suited to a wide variety of prob- 
lems. It is this combination of simplicity 
and power which seems to me to make 
PASCAL the natural choice for a standard 
microprocessor language." 



BIBLIOGRAPHY 

PASCAL: User Manual and Report, Kathleen 
Jensen and Niklaus Wirth, Springer Study 
Edition (2nd edition), Springer-Verlag, 175 
Fifth Av, New York 10010. 

Microprocessor Problem Solving Using PAS- 
CAL, Ken Bowles, Springer-Verlag, New York, 
1977. 

PASCAL News, Andy Mickel, University 
Computer Ontsr. 227 Experimental Eng, 
208 SE Unior: St, University of Minnesota, 
Minneapolis MN 55455. 



116 



August 1978 ©BYTE Publications Inc 



Languages 
Fonum 



Herbert Yuen 

POB 2591 Station A 

Champaign IL 61820 

Kin-Man Chung 
124 Scottswood Dr 
Urbana IL 61801 



A Proposed 
Pascal Compiler 



A Note About the Tiny Pascal Project. . . 

As this special issue went to press, we had just received the first two 
parts of a 3 part series of articles on a Tiny Pascal compiler by Herbert 
Yuen and Kin-Man Chung. Watch future BYTEs for this excellent "do 
it yourself" project for the software experimenter. . .CH 



In the Languages Forum of the April 
1978 BYTE, page 150, we read Stephen 
Smith's report on his homebrew compiler 
project. Actually, he is developing the Pascal 
subset compiler on a mainframe computer at 
a university and planning to transfer it to a 
microcomputer. He said he had a minor 
problem with code generation (using 6502 
machine code). We think his project might 
progress more smoothly if he uses another 
approach— that of generating assembly code 
for a hypothetical stack machine. This is 
the same method professionals use for 
implementing portable Pascal compilers on 
big computers. 

Our own homebrew compiler project was 
developed in house on a microcomputer 
that uses an 8080 processor and has a North 
Star disk system. We began in mid December 
of 1977. Our motivation came from the fact 
that the North Star disk BASIC, although 
very good for general programming pur- 
poses, was not fast enough for system soft- 
ware development and some graphic games. 
For instance, our 8080 assembler, written in 
BASIC, takes 1 to 3 seconds to assemble 
one single assembly instruction. Assembling 
a 500 line program takes about one half 
hour. From various sources of information 
we know that Pascal is one of the easiest 
languages to implement. It also has many 
nice features that are desirable in a high level 
language. 

The Pascal subset is small, otherwise it 
would be very difficult to develop using a 
BASIC interpreter. All variables in the 
subset arc 1 6 bit integers. Arrays are single 
dimensional. Character strings are declared 



as arrays and each character takes one array 
element; although wasting space, this is easy 
to implement. Procedures and functions may 
be recursive. Variables and constant, 
except arrays, can be passed as arguments 
to procedures and functions. Language state- 
ments include declaration, assignment, 
BEGIN-END, IF-THEN-ELSE, WHILE-DO, 
REPEAT-UNTIL, FOR-TO/DOWNTO-DO, 
CASE-OF-ELSE. The subset is big enough 
to provide useful features. The Pascal 
compiler can be written in the subset with- 
out much difficulty. 

The actual coding of the compiler (in 
BASIC) began in January 1978. The com- 
piler generates P-code for a hypothetical 
stack machine, the same one described in 
Wirth's book, Algorithm + Data Structure = 
Programs. (P-code is the intermediate code 
generated by the Pascal compiler. It is the 
machine language of a hypothetical Pascal 
oritented computer. Use of P-code makes 
the Pascal language portable since only a 
P-code interpreter needs to be written for a 
particular processor. This saves the user 
from writing the entire compiler for each 
individual machine.) Several instructions and 
input/output (IO) capabilities have been 
added. At the same time, an interpreter was 
also written (in BASIC) to execute and 
debug the P-code. It helps to verify the 
correctness of the codes generated by the 
compiler. In late January, after most parts 
of the two programs had been debugged, 
we began to design a run time support 
package in 8080 assembly language and also 
a translator thai translates P-codc to 8080 
machine code. With the debug package and 



Continued on page 155 



August 1978 © BYTE Publications Inc 117 



Event Cueoe 



August 7-9, Knowing and Understanding 
Computer Graphics, Toronto CANADA. 
This 3 day intensive seminar will cover 
all aspects of computer graphics, demon- 
strating how effectively and economic- 
ally they may be incorporated into the 
business community. Contact Robert 
Sanzo, Frost & Sullivan Inc, 106 Fulton 
St, New York NY 10038, (212) 
233-1080. 

August 7-9, Project Management for 
Computer Systems, Houston TX. This 3 
day seminar will illustrate techniques for 
planning, implementing, installing and 
controlling projects. Specific examples 
and case studies will be discussed. This 
seminar is intended for computer proj- 
ect managers, data processing managers, 
VPs of administration, financial man- 
agers and others involved in EDP systems 
development and implementation. Con- 
tact the University of Chicago, Center 
for Continuing Education, 1307 E 60th 
St, Chicago IL 60637. 

August 7-9, Third Jerusalem Conference 
on Information, Jerusalem ISRAEL. 
The conference will cover a broad range 



of topics on computing applications, 
science and technology. Primary empha- 
sis will be on the role of computers in 
the transfer of technology between large 
and small countries. Contact Robert W 
Rector, executive director, AFIPS, 210 
Summit Av, Montvale NJ 07645,(201) 
391-9810. 

August 7-9, Laser Beam Information 
Systems, Minneapolis MN. This sem- 
inar will cover the growing applica- 
tion of laser technology in image and 
data manipulation in the form of scan- 
ning, transmission, reproduction and 
control. The principles and practice of 
laser beam information systems will be 
covered in preparation for direct appli- 
cation to such fields as facsimile, com- 
puter memory and display, target 
identification, reconnaissance, photo- 
composition and image manipulation. 
Contact Philip M Nowlen, program 
chairman, director, Center for Con- 
tinuing Education, the University of 
Chicago, 1307 E 60th St, Chicago IL 
60637. 

August 8-10, Management Information 
Systems, Lehigh University, Bethlehem 
PA. The major objectives of this seminar 
are to prepare a user manager to better 
understand and communicate with data 
processing specialists during the feasibil- 
ity study, design, conversion, implemen- 
tation and evaluation of an information 



S-100 BUS COMPATIBLE. The EMM 1104 single card plug-in memory has 
been field tested and proven in a variety of systems including the Poly 88, 
TMSAI, MITS, COMPAL-80, TLD and CREMENCO. 16K BYTES ON A CARD. 
Convenient plug-in card, fully burned-in, tested and guaranteed by one of 
the industry's largest memory suppliers. NMOS STATIC RAM. The 4K 
static RAMs have been proven in applications ranging from single chip 
memories to IBM 370 add-on systems. They are fast, 
reliable, and no refresh cycle is required. 
See your dealer, or contact us for complete information. 

S-100 Bus Compatible Memory 



16K bytes on a card 



NMOS static RAM 




Commercial Memory Products, a Division of Electronic Memories 

12621 Chadron Avenue • Hawthorne, California 90250 • Telephone (213) 644-9881 



system and to equip the manager with 
sufficient data processing knowledge to 
identify potential areas for computeriza- 
tion and/or to improve existing systems. 
Contact Faith Newhall, Administrative 
Assistant, Industrial Engineering Depart- 
ment, Packard Lab #19, Lehigh Univer- 
sity, Bethlehem PA 18015, (215) 691- 
7000 ext 385. 

August 7-11, Coding and Information 
Theory, University of Toronto CAN- 
ADA. This course will present the funda- 
mentals of representation, storage and 
transmission of data. Protection against 
storage and transmission errors using 
error detection and error correcting 
(including Hamming) codes will be de- 
veloped. Efficiency enhancement 
through information compressing codes, 
predictive run encoding and Markov 
chains (probabilistic finite state ma- 
chines) will be discussed. Contact Short 
Course Program Office, 6266 Boelter 
Hall, UCLA Extension, Los Angeles CA 
90024,(213) 825-3344 or 825-1 295. 

August 15-17, In-house Development of 
Data Processing Documentation and Pro- 
cedures Manuals, Lehigh University, 
Bethlehem PA. This workshop seminar 
is designed for DP personnel of com- 
puter centers who wish to revise or 
develop a DP documentation and pro- 
cedures manual. The seminar will allow 
the individual participants to interact 
with the lecturers and other participants 
about their specific problem areas. Some 
of the program topics will include docu- 
mentation principles and practice, DP 
documentation and procedures manual, 
definition of procedures, the systems 
development process. Contact Faith 
Newhall, administrative assistant, 
Industrial Engineering Department, 
Packard Lab #19, Lehigh University, 
Bethlehem PA 18015, (215) 691-7000 
ext 385. 

August 21-25, Digital Filters, UCLA. 
This course will provide a practical intro- 
duction to the subject of digital filters. 
Topics will include the frequency ap- 
proach, Fourier series and integrals, non- 
recursive filter design, theory of recursive 
filter design, discrete Fourier transforms, 
fast Fourier transform implementation, 
estimation of power spectra and non- 
linear phenomena due to quantizing 
signals. This course will be of interest to 
those who use linear combinations of 
data. The emphasis is on its basic nature 
and practicability. Contact Nonie 
Watanabe, Short Courses, 6266 Boelter 
Hall, UCLA Extension, Los Angeles CA 
90024. 

August 21-26, Three Short Courses for 
Engineers, Computer Scientists and Indi- 
viduals Interested in the Areas of Micro- 
computers and Digital Electronics, 
Trenton State College, Trenton NJ. The 
courses are: assembly language program- 
ming and interfacing for the 8080/8085/ 
Z-80 microprocessor, programming in 
BASIC for the microcomputer owner, 
and microcomputer digital logic circuits. 
Each of the courses will cover approxi- 



118 August 1978 © BYTE Publications Inc 



Circle 132 on inquiry card. 



mately the same ground as a normal 1 
semester college course and will be pre- 
sented in the form of an intensive, fully 
documented lecture coupled with labo- 
ratory sessions. Contact The Division 
of Continuing and Adult Education, 
Trenton State College, Trenton NJ, 
08625,(609) 771-2255. 

August 21 -September 2, Courses on 
Microcomputer Interfacing and Analog 
Signal Conditioning, Virginia Polytech- 
nic Institute and State University. The 
objective of these programs is to provide 
an educational experience for scientists, 
engineers, teachers, managers or tech- 
nicians in the areas of microcomputer 
data acquisition, instrumentation, and 
measurement systems ranging from the 
analog sensor through the analog data 
channels to the microcomputer. The 
courses provide a combined lecture and 
laboratory experience. Continuing edu- 
cation units are provided for each 
course. Contact Dr Linda Leffel, Center 
for Continuing Education, Virginia Poly- 
technic Institute and State University, 
Blacksburg VA 24061, (303) 951-5241. 

August 24-27, PC '78, Philadelphia 
Civic Center, Philadelphia PA. The 
first day of PC '78 (August 24) will 
be an industry trade show which is 
open to dealers, the industry and ex- 
hibitors' guests. For the remaining 
three days the full Personal Computing 
Show and Personal Computing College 
will be running. Over 80 hours of free 
seminars are planned. Contact John H 
Dilks III, Rt 1, POB 242 (Warf Rd), 
Mays Landing NJ 08330. 

August 29-31, Data Processing Opera- 
tions Management, New York NY. This 
seminar will offer the senior data proc- 
essing professional an opportunity to 
gather the latest management skills. The 
curriculum is designed toward practical, 
applied data processing management 
techniques. Contact Philip M Nowlen, 
program chairman, director, Center for 
Continuing Education, University of 
Chicago, 1307 E 60th St, Chicago IL 
60637. 

September 6-8, COMPCON Fall '78, 
Capitol Hilton Hotel, Washington DC. 
Sponsored by the IEEE Computer 
Society, this conference will cover 
computers and communications, inter- 
faces and interactions. Such topics as 
microprocessors in communications, 
multiple computer systems, advances in 
communications technology and many 
others will be discussed at this confer- 
ence. Contact Kenneth H Crandall Jr, 
COMPCON Fall '78, POB 639, Sil- 
ver Spring MD 20901. 

September 11-15, Coding and Informa- 
tion Theory, Georgia Institute of Tech- 
nology. See August 7-11, University of 
Toronto, for information. 

September 12-14, WESCON/78 Show 
and Convention, Los Angeles Conven- 
tion Center and Los Angeles Bonaven- 
ture Hotel. Contact Electronic Conven- 



tions Inc, 999 N Sepulveda Blvd, El 
Segundo CA 90245, (213) 772-2965. 

September 18-22, Digital Filters, Georgia 
Institute of Technology. See August 
21-25, UCLA, for information. 

September 29-October 1, International 
Microcomputer Exposition, Dallas Con- 
vention Center, Dallas TX. This exposi- 
tion will be directed toward all levels of 
technology from the professional engin- 
eer to the beginning computer hobbyist. 
In addition to the seminars, a panel of 
experts will be available to answer 
questions. Contact Beverly Tanner at 
(214) 271-9311. 

October 4-6, Knowing and Understand- 
ing Computer Graphics, San Francisco 
CA. See August 7-9, Toronto. 

October 5-8, Midwest Personal Comput- 
ing Show, Apparel Center's Expocenter, 
Chicago IL. More than 200 displays fea- 
turing the full spectrum of the latest 
personal computing developments are 
expected to be presented by manufac- 
turers and distributors. A comprehensive 
program of seminars, forums and prac- 
tical application clinics will parallel the 
four days of exhibits. Contact Midwest 
Personal Computing Exposition, ISCM, 
222 W Adams St, Chicago IL 60606, 
(312) 263-4866. 



October 16-19, Information Manage- 
ment Exposition and Conference, 
McCormick Place, Chicago IL. The 
theme, strategic planning in the infor- 
mation age, was selected to convey the 
need for a corporate strategy for the 
gathering, storage, retrieval, dissemina- 
tion and management's use of informa- 
tion. Computer equipment to be demon- 
strated will include large, medium and 
small systems, mini and micro systems, 
small business systems, terminals, periph- 
erals, data communication systems, data 
collection and preparation handling sys- 
tems, magnetic media and accessories. 
Contact Clapp & Poliak Inc, 245 Park 
Av, New York NY 10017. 

October 24-26, Project Management for 
Computer Systems, New York NY. See 
August 7-9, Houston, for information. 

October 30-November 1, Second Annual 
Data Entry Management Association 
Conference, Sheraton Harbor Island 
Hotel, San Diego CA. The conference 
theme is data entry today and tomorrow 
and will concentrate on the human side 
of data entry and distributed data entry. 
There will be a full schedule of seminars, 
panel discussions, and workshops includ- 
ing hands-on workshops with various 
vendors' equipment. Contact Marilyn 
Bodek, DEMA, 16E Weavers Hill, Green- 
wich CT 06830." 



HOLD IT! 

Anywhere you 
want it. 



PanaVise tilts, turns, rotates 
One quick turn of the control 
knob and you securely position 
your work exactly where you 
want it. Holds firmly but gently 
the most delicate electronic 
parts and P. C. boards. 

Whether you're into building 
home electronics, trouble 
shooting, or professional serv- 
icing . . . you'll wonder how 
you got along without this mod- 
estly priced 'extra hand.' 

Model 396 Wide Opening PanaVise 
shown. An ingenious variety of othe 
interchangeable bases, holders and 
accessories also available. See you 
electronics distributor, or write 
for FREE brochure. 



1/tSEi 



® 

Dept. CE1 -'" 
5224 Chakemco St., South Gate, CA 90280 







Circle 292 on inquiry card. 



August 1978 © BYTE Publications Inc 119 




Continued from page 10 

I see no need for a $20+ kit (eg: Pickles 
and Trout TVM-04 mentioned in the 
article) when a $.20 resistor will do. I 
converted my Philco 9 inch black and 
white TV set by providing a jack at the 
base of the first video amplifier tran- 
sistor and by increasing the value of the 
emitter resistor of that stage by 100 
ohms to prevent overloading from my 
KIM/TVT-6 interface. The resulting 
picture is excellent. 

Cass R Lewart 

12 Georjean Dr 

Holmdel NJ 07733 

It is a matter of having a product 
marketed with coherent step by step 
instructions for a specific product. While 
your method no doubt works, you 
probably have the benefit of personal 
experience which gives you the con- 
fidence to proceed. . .CH 

TRS-80 INTERFACES WANTED 

I would like to receive information 
and schematics on interfacing a Texas 
Instruments 59 calculator and PC-100A 
printer to a Radio Shack TRS-80 or 
information on where I can obtain a 
board for this use. 

I would appreciate hearing from any 
of your readers who have done this or 
may know someone who has. Any help 
will be appreciated. 

I am also interested in a S-I00 bus 
adaptor For the TRS-80. 

Tom Swalenberg 

541 Barnett Rd 

Columbus OH 43213 



ASOFTWARE EXCHANGE? 

At Coloma (Ml) High School we have 
a computer center. In our center we have 
eight different microcomputer systems 
plus a 3M Model 5500 test scorer. These 
systems use four different BASICs as 
well as a number of different ways of 
storing programs. The BASICs we use 
are: 

1. PolyMorphic extended version 
A00 

2. IMSAI CPM system BASIC-E ver- 
sion 1.33 

3. Altair 8 K BASIC version 4 

4. North Star BASIC 

The storage systems we use are: 

1. Poly 88 Byte Base cassette 
recording system 

2. IMSAI dual floppy disk system 
with CPM 

3. Tarbell cassette recording system 

4. North Star minifloppy disk system 

5. Standard paper tape 

We feel that it is necessary to set up a 
software library between schools using 
microcomputer equipment. This would 
give schools a chance to exchange pro- 
grams and ideas, and to help other 



120 August 1978SBYTE Publications In 



Circle 283 on inquiry card. 



schools just getting started by sending 
them already working programs such as 
games, memory tests, and other material. 
We can provide programs to any other 
schools in any of the above formats and 
would be willing to act as a center to 
publish all available computer programs 
for schools, providing other school sys- 
tems are willing to share in this idea and 
trade programs. Any interested experi- 
menters who have programs to share 
with schools are welcome. 

Terri Learner 

Coloma Computer Center 

Coloma High School 

Coloma Ml 49038 



PET BUG? 

Recent PET computers have included 
a comment sheet stating that Richard 
Duda's Othello program in October 
1977 BYTE, page 60, cannot be run 
because of excessive subroutine nesting. 
This is absurd; the program does not 
contain any subroutine nesting. It does 
not work as written because PET BASIC 
does not allow branches out of FOR 
loops. This probably applies to other 
versions of Microsoft BASIC as well. 
On the PET it appears to be acceptable 
to shorten a FOR by setting the index 
to its terminal value. At any rate the 
following fixes work on my PET and 
should work for other computers (such 
as Apple II, Radio Shack TRS-80 Level 
II, etc) which use Microsoft BASIC. 

01820 J=0 

01825 FOR J9=1 TO 8 

01830 IF C$(J9)=X$THEN J=J9: J9=8 

01840 NEXT J9 

01850 IF J=0GOTO 1720 

02620 F1=0 

02630 FOR I1--1 TO 1 

02640 FOR J1="1 TO 1 

02650 IF All + 11, J+J1)=T2THEN F1"1: J1-1: 11-1 

02660 NEXT J1 

02670 NEXT 11 

02680 RETURN 

Delete 02690 thru 02720 

This is an excellent program and the 
graphics can be easily enhanced to show 
off the PET's capabilities in this area. 
A Go board with the pieces at the inter- 
sections of the lines is easier to use and 
more appropriate to the game than a 
checker type board. It does require an 
8 K machine as written, but probably 
could be compressed. 

Some of PET's bugs the new owner 
should watch out for are that expres- 
sions of the form IF NOT X may not 
evaluate properly, and executing a DIM 
in the middle of a program may clear all 
variables to zero. These are real disasters 
in connection with the PCC version of 
LIFE, for instance. 

Incidently, my PET, delivered April 
5, is #13,541. It was delivered less than 
three weeks after I mailed the order, has 
worked flawlessly from the start and is a 
superb machine for the price. Docu- 
mentation remains less than adequate, 
so novices beware. 

Mike Hughes 

POB 393 

Rapid City SD 57709 




Hobbiests! Engineers! Technicians! Students! 



Write and run machine language programs at home, display video graphics 
on your TV set and design microprocessor circuits — the very first 
night — even if you've never used a computer before! 



II 



featuring 




RCA COSMAC 

microprocessor/mini- 
computer 



95 



Bet "hands on" experience with » computer for just 
599.95. Then, once you've mastered computer 
fundamentals, expand ELF II with low cost add-ons and 
you've got an advanced personal computer powerful 
enough to solve business, industrial or scientific 
problems. 



ELF 
byNETRONICS 

as featured In 
POPULAR ELECTRONICS 

shown with optional 4k 

Memory Boards, GIANT 

BOARD'". Kluge 

Board and 

ASCII 

Keyboard 




Learning Breakthrough! 

A Short Course On 

Microprocessor And 

Computer Programming 

Written for anyone! Minimal background needed! 

Using advanced computers is now as easy as driving a 
car with an automatic transmission. We will teach you. step 
by step, instruction by instruction, how to use an RCA 
COSMAC computer 

Not only does our short course explain, cu outers, il 
helps anyone write and run programs and solve complex 
problems requiring a computer Knowing how a computer 
works can help you . . . 

(1) Spot situations where a computer can assist you in 
business, industry, personal applications, etc; (2) Select the 
most economical computer (or microprocessor) and related 
hardware for your specific needs; (3) Write and run the 
programs you need; and (4) Keep your computer costs down. 

This course was written for ELF II users but . . it's a 
blockbuster (or every RCA COSMAC user or owner! 



SPECIFICATIONS 

ELF II features and RCA COSMAC COS /MOS 8-bil 
microprocessor addressable to 64k byles wilh DMA. 
Interrupt, 16 registers. ALU. 256 byte RAM, full hex 
keyboard, iwo digit hex output display, 5 slot plug-in 
expansion bus (less connectors), stable crystal clock 
for timing purposes and a double-sided, 
plated-through PC hoard plus RCA 1861 video IC to 
display any segment of memory on a video monitor or 
TV screen. 

EXPANSION OPTIONS 

•ELF II GIANT BOARD™ with casssette I/O. 
RS 232-C/TTY I/O. 8-bit P I/O. decoders for 14 
separate I/O instructions and a system 
monitor /editor. Turns ELF II into the heart of a 
full-size system wilh massive computing power! 
$39.95 kit. 

■ 4k Static RAM. Addressable to any 4k page to 64k. 
Uses low power 2102s. Chip select circuit allows 
original 256 bytes to be used. Fully buffered. 
Onboard 5 voli regulator. $89.95 kit. 

• Prototype (Kluge) Board accepts up to 36 I.C.'s 
including 40, 24, 22. 18, 16, 14 pin. Space available 
for onboard regulator. $17.00. 

■ Gold plated 86-pin connector. $5.70. 

• ELF II Full ASCII Keyboard. Upper and lower 
case. $64.95 kit 

• 5 amp Expansion Power Supply. Powers the 
entire ELF II (Not required unless adding 4k RAM 
boards ) $34 95 kit 

All of the above PC boards plug directly into 
ELF It's expansion bus. 

ELF II TINY BASIC 

Communicate with ELF II in BASIC! ELF II Tiny 
BASIC is compatible with either ASCII keyboard and 
TV screen or standard teletype /video terminal 
utilizing RS 232-C or 20 mil TTY interface. 
Commands include SAVE and LOAD for storing 
programs on standard cassettes, a plot command to 
display graphic information and special commands 
for controlling ELF II I/O devices. 16-bil integer 
arithmetic, + . x. *, 0- 26 variables A-Z. Other 
commands include LET. IF/THEN, INPUT. PRINT. 
GOTO. GO SUB, RETURN, END. REM, CLEAR. 
LIST. RUN. PLOT, PEEK. POKE Comes with 
maintenance documentation and excellent user's 
manual that allows even beginners lo use ELF II for 
sophisticated applications. (4k memory required ) 
$14.95 on cassette tape. 

Coming Soon . . . DA. A-DConverter • Controller 
Board • Cabinet • Lighi Pen (Leis you write or draw 
anything on a TV screen. Imagine having a "magic 
wand" lhai writes like a crayon ! ) 



Stop reading about computers and get your hands on one. ELF II is an outstanding trainer 
for anyone who needs to use a computer to maximize his or her personal effectiveness. Bui ELF II 
isn't just a trainer. Expanded, it becomes the heart of a powerful computer system. 
For $99.95 You Get All This— 

No other small personal computer offers video output and ELF lis expansion capabilities 
for anywhere near $99.95. ELF II can create graphics on your TV screen and play electronic 
games! It pays for itself over and over again in the fun it provides for your whole family 
Engineers and hobbiests can use ELF II in microprocessor-based circuits as a counter, alarm, 
lock, thermostat, timer, telephone dialer, etc. The possibilities are endless! 
The ELF II Explodes Into A Giant! 

Once you've mastered computer fundamentals, ELF II can give you POWER! Plug in the 
GIANT BOARD'" and you can record and play back your programs, edit and debug programs. 
communicate with remote devices and make things happen in the real world. Add Kluge Board to 
solve specific problems such as operating a more complex alarm system or controlling a printing 
press. 4k memory units let you write longer programs and solve even more sophisticated 
business, industrial, scientific and personal finance problems. 

Add ELF II Tiny BASIC And Keyboard! 

To make ELF II easier to use. we've developed ELF II Tiny Basic. It lets you program ELF II 
with simple words you can type out on a keyboard such as PRINT, RUN and LOAD. ELF II responds 
by displaying answers on your printer, video monitor or TV screen. 

Write And Run Programs The Very First Night! 

The ELF II kit includes all components and everything you need to write and run your own 
programs plus the new Pixie Graphics chip that lets you display any 256 byte segment of memory 
on a video monitor or TV screen. No wonder ELF II is now being used as a trainer in many high 
schools and universities. 

Easy instructions get you started right away, even if you've never used a computer before. 
The newly expanded ELF II Manual covers assembly, testing, programming, video graphics and 
games. 

ELF II can be assembled in a single evening and you'll still have time to run programs 
including games, video graphics, etc. before going to bed! 

riHHMiH SEND TODAY! — — — — — 
NETRONICS R&D LTD., Dept. BY-6 (203) 354-9375 I 

| 333 Litchfield Road, New Milford, CT 06776 

In YES! I want to run programs at home and have enclosed: □ $99.95 plus $3 . 
p&h for RCA COSMAC ELF II kit. i ■ $4.95 for power supply, required for ELF II kit. I 
D $5.00 for RCA 1802 User's Manual. 
I D $4.95 for Short Course on Microprocessor & Computer Programming. 

ID ELF II connects to the video input of your TV set. If you prefer to connect ELF II to your 
antenna terminals instead, enclose $8.95 for RF Modulator 
D $39.95 plus $2 p&h for ELF GIANT BOARD'" kit. 
I _ 4k Static RAM kit, $89.95 ea. plus $3 p&h. 

■ □ $17.00 plus $1 p&h for Prototype (Kluge) Board. 

ID $34.95 plus $2 p&h for Expansion Power Supply kit. 
Gold plated 86-pin connectors at $570 ea. 

In $64.95 plus $2 p&h for ASCII Keyboard kit 
D $14.95 for ELF II Tiny BASIC cassette. 

In] want my ELF II wired and tested with the power transformer, RCA 1802 User's 
Manual and Short Course on Microprocessor & Computer Programming for $149.95 
I plus $3 p&h. 
Total enclosed (Conn. res. add tax) $ n Check here if you are enclosing 

■ Money Order or Cashier's Check to expedite shipment 




NAME 



ADDRESS- 



i DEALER INQUIRIES INVITED i 



Circle 280 on inquiry card. 



August 1978 © BYTE Publications Inc 121 



Pascal versus COBOL 



Where Pascal Gets Down to Business 



Ken Bowles 

Institute for Information Systems 

University of California San Diego 

Mail Code C-021 

La Jolla CA 92093 



With a few important extensions, Pascal 
can be an extremely powerful tool for writ- 
ing interactive business application programs 
on microcomputers and minicomputers. 
Pascal provides data structuring facilities 
generally superior to those of COBOL, and 
its control constructs allow a systematic 
and modular approach to program design 
that reduces development effort and im- 
proves reliability compared with BASIC or 
FORTRAN. The extensions needed make 
it easy to write interactive programs, use 
random access (floppy) disk files, handle 
business arithmetic, and recover from error 
situations. 

A Case Study 

In this article we will illustrate the use of 
Pascal for a program application one might 
find, with variations, in many small busi- 
nesses. More general descriptions of the 
language are contained elsewhere in BYTE 
and in many published introductory text- 
books. 

The business we have in mind keeps 
records of information about transactions 
with its customers, and also records con- 
taining descriptive information about the 
people with whom it deals. The descriptive 
records might apply to clients of a law firm, 
patients of a medical or dental clinic, sup- 
pliers of a hardware store with a large and 
diverse stock, houses currently listed by a 
real estate firm, users of hardware and soft- 
ware products handled by a computer store, 
and so on. The transaction records would 
describe orders for goods to be sold, de- 
liveries, invoices sent, payments, requests 
for information, promotional literature sent, 
customer property sent out for repairs, 



medical tests ordered, etc. Typically each 
record in the file of descriptive records 
would correspond to many transaction 
records. Depending upon circumstances, 
the transaction records might be stored in- 
termingled with the descriptive records (just 
as in the shoe boxes that some small busi- 
nesses now use) or in a separate disk file. 
They might be stored on the same floppy 
disk if the files are small, or they might be 
stored on different disks. In any event, we 
assume that the number of items in the de- 
scriptive file is so large that manual proc- 
essing of the transactions information repre- 
sents a significant cost to the business for 
record keeping. We also assume that the 
business is small enough that it cannot 
afford to have its own full time data proc- 
essing department. 

We now consider how Pascal programs 
written for a small computer might help in 
the operations of a hypothetical small busi- 
ness, the Zyx Gizmo Store. With many com- 
peting manufacturers producing gizmos, it 
is necessary for Zyx to keep track of many 
different sizes, shapes, qualities and special- 
ized forms of gizmos. Moreover, the buyer 
can start with a basic model, later adding 
modules to obtain a larger and more sophis- 
ticated gizmo. Gizmos require periodic 
maintenance and corrective repairs. Zyx 
stocks some replacement parts which are 
installed in customer's gizmos by the Zyx 
repair department or sold to users who do 
their own repair work. Some replacement 
parts are too expensive to stock locally, and 
Zyx must order them from regional distribu- 
tors when needed. Gizmos are complicated 
enough to use that many users require text- 
books or short training courses to under- 
stand how to use them. Zyx sells the text- 
books and runs periodic training seminars 
for which users pay a small fee. Both the 
training and repair problems are made com- 
plex by the rate at which the technology of 
manufacturing gizmos is advancing, as new 
models are introduced by the manufacturers 
each year. While the similarity of the gizmo 
to the microcomputer is easily recognized 



122 August 1 978 © BYTE Publications Inc 



by many readers, the gizmo model could 
apply equally well to technology based de- 
vices being sold in many fields today. 

We can assume that Zyx is large enough 
to employ several salespeople, repair people, 
and at least one full time administrative 
assistant in addition to the owner of the 
company. In general, when a situation arises 
requiring communication with a customer, 
any one of these people may have occasion 
to refer to the filed records on previous 
transactions involving that customer. If the 
customer telephones to request advice about 
an apparently malfunctioning gizmo, the 
responding Zyx employee usually needs 
information about the make, model, size 
and other details describing the customer's 
gizmo. If a customer asks Zyx to order an 
additional module from a national distribu- 
tor, he or she may call Zyx to inquire about 
the fate of the order before delivery is ac- 
tually completed. If a manufacturer of 
modules for gizmos introduces a new line 
of devices, Zyx may wish to save on promo- 
tion costs by contacting only customers 
known to be using gizmos compatible with 
that manufacturer's devices. For these and 
many other reasons, designated employees 
of Zyx should have ready access to records 
on the customer's dealings with the firm. 
These records make it possible for Zyx to 
render a personalized service that probably 
is the main reason why customers come 
to the Zyx store for their gizmos rather 
than to a national or regional distribution 
company. 

Of course now that low cost microcom- 
puters have become moderately powerful, 
it is possible, in principle, for Zyx to main- 
tain its descriptive and transaction records 
on customers in a floppy disk or small hard 
disk system. Ideally, the cost of adding a 
microcomputer to a small business operation 
is only a fraction of the value received, both 
in labor costs and in improved customer 
relations. Moreover, the company could 
use the microcomputer for maintaining its 
accounting records, sending bills, keeping 
track of inventory and so on. We say ideally 
because the effort to write a suite of pro- 
grams to access and maintain the necessary 
files can be quite substantial if the program- 
ming is done in BASIC or FORTRAN (or 
assembly language). Using Pascal the effort 
should be very much less than the equivalent 
effort using BASIC or FORTRAN. 

Since COBOL is becoming available 
on microcomputers, some comments on 
COBOL versus Pascal are appropriate. Here 
the principal issue has more to do with the 
operating system, within which business pro- 
grams written in the language will run, than 
with the language comparison. Given reason- 



Enjoy an easy way 
to program faster, 
with fewer errors 

Save time, save money, have more fun when you write programs in BASIC 
on our new combination Program Coding/CRT Layout Sheets. We engineered 
this new programming aid specifically to help people like yourself with pro- 
grams in BASIC for personal and small business computers. 

If you're using another coding form now, you'll really enjoy the improve- 
ments we've designed for you into 78C1. If you use legal pads or the backs 
of old envelopes to write your BASIC programs, our new form will give you 
a taste of the ease professional programmers enjoy. Our formal coding sheet 
helps keep your thinking linear, and makes it easier to remember details 
like spacing and punctuation. 

8 Unique advantages 

1. Gives you 2 form uses for the price of one. When display layout and 
line folding points aren't critical, use 78Cl's full 28 line x 80 column grid 
area for regular program steps. Then for interactive or instructional sections, 
to plan display layouts simply keep your characters within the appropriate 
CRT indicator lines, and you'll automatically know where every character 
will show on your CRT screen. 

2. Gives you 4 extra coding lines on every sheet. Full 28 line x 80 col- 
umn coding capacity saves you 14 sheets out of every 100, compared to 
24-line forms. 86 sheets hold more program steps than 100 sheets of any 
24-line form, yet we offer full-size 6mm x 3mm grid blocks to give you com- 
fortable writing room and visual space between lines. 

3. Works with your CRT display, no matter what brand you own. Equipped 
for both 16 line x 64 column and 24 line x 80 column display formats, 78C1 
is compatible with your video terminal. 

4. Surface-engineered to take both pen & pencil without blotching. Spe- 
cial paper base is pure enough for critical magnetic ink character readers, 
although you'll probably never use it that way. We use it to give you crisp, 
sharp characters whether you write with pencil or plastic-tip pens. Specific 
pen and pencil suggestions for best results are inside each package. 

5. Eye-comfortable soft blue grid. All grid rulings, tints, and division 
rules are reproduced in a shade of blue easy on your eyes, even after hours 
of continuous programming. 

6. Bright white sheet makes your characters easy to read. Heavy 22- 
pound brilliant white opaque paper gives your writing contrast, makes it easy 
to read. 

7. 8'.' x 11 size saves you money. . .fits standard binders, folders, & 
files. We designed 78C1 to serve professional programmers, hobbyists, and 
small business people economically. We engineered it to not only save time 
and reduce bugs, but also to fit standard binding and storage supplies. You 
can store it in common 3-ring notebooks, file it in regular "letter size" files, 
bind it in standard school-supply report covers. 

8. Your choice of looseleaf style or 50-sheet pads. Both are 3-hole punch- 
ed. Snap looseleaf style sheets into a 3-ring binder, begin writing, and auto- 
matically you'll keep your whole program together in proper order. Or if 
you prefer, use our 50-sheet pads and rip off each page as you complete 
it, for later filing. The choice is yours. 

Try a pack today 

Ask your local computer store for a package of Stirling/Bekdorf 78C1 
today. If they don't have it yet, use the coupon below to get yourself a 
trial supply right now. 

, 1 

YES. Rush me the quantity of 78C1 BASIC Coding/CRT Layout Sheets " 
I have indicated below: 

Looseleaf Pads 

□ 100 = $6.05+ 51.50 shpg. □two50-sht. pads. 56.35 + $1.50 slips 

□ 500 = $24 10 + $2.85 slips Dlen 50-sht pads: $26.85 + $2.85 slips 

Q Enclosed is my check for $. 



DChargeto: □ Master Charge; □ Visa Card §. 
Signature 



Dealer inquiries welcome 



Name 

Address . 
City 



.State. 



.Zip. 



Stirling/Bekdorf 

4407 Porkwood - San Antonio, TX 78218 □ (512) 824-5643 



|b8_ 

Circle 354 on inquiry card. 



August 1 978 © BYTE Publications Inc 1 23 



YOUR 

S-l 00 BUS 

NEEDS 

FILLED! 



* Main Frames 
Memory Boards 



Disk Systems 
Interface Boards 



Credit Gash 

Card Discount 

Price Price 

Dynabyte JJBOns 16K RAM (assm.) $ 520. S 800. 

Dynabyte Naked Terminal (assm.) $ 328. $ 318. 

Cromemco 280ns 16K HAM Kit $464. $446. 

Cromemco Bytesaver Kit $ 136. $ 131. 

Cromemco Z-8 Computer Kit $ 557. $ 836. 

Cromemco Z-8D Computer Kit $1399. (1348. 

IMSAIPCS-80/lBKit $ 731 S 703. 

IMSAI 8080 Kit with 82-slot M.B. $ 593 $ 870. 

IMSAI VIO-C Kit $ 297. $886. 

Trace 1 6K Static RAM 

(assm. on 38K board) $ 529. $ 809. 

Trace 3HK Static BAM (assm.) $883. $849. 

North Star Micro Disk System 

Kit $ 623. $ 899. 

North Star MDS Second drive Kit .. $395. $380. 

North Star Horizon 1 computer Kit $1497. $1439. 

North Star Horizon Second Drive . . $ 395. $ 380. 

North Star Horizon 1 (assm.) $1777. $1709. 

8" Floppy Diskettes 

(IBM soft-sectored) $ 6. $ 8.80 

8" Floppy Diskettes 

(North Star format) $4.50 $4.80 

TDL ZPU Cassm.) $ 183. $ 176. 

TDL D-38 RAM (assm.) $ 769 $ 739. 

TDL Software Package A 

(with 18K BASIC) 

For North Star Disk $228 $ 819. 

OnPaperTape $ 186. $ 179. 

On TarbeU Cassette $ 168. $ 181. 

Lear Slegler ADM-3A Kit write or call for prices 

Seals Electronics 8K 280ns RAM 

Cassm.) $ 187. $ 180. 

George Bisk Model 786 ASC II 

Keyboard (assm.) $ 71 $ 68. 

Metal Cabinet for Model 786 $ 28. $ 87. 



Shipping charges: S10 per CPU on larger units; S1.50 per kit. $2.00 min. per 
order. 

Delivery is stock to 30 days on most items. Shipment is immediate for pay- 
ment by cashier's check, money order or charge card. Allow 3 weeks for 
personal checks to clear. W.Y. State residents add approp. sales tax. Avail- 
ability, prices and specs may change without notice. 

Write or Call 

computer 
emerpri/e/™ 



P.O. Box 71 
Fayetteville, N.Y. 13066 

Phone C31S) 637-6208 Today! 



Operating Hours: 
M-W10-BE.S.T. 
Th-F10-9E.S.T. 

Closed Sat. & Sun. 



able operating system support of the lan- 
guage, no one versed in Pascal would con- 
sider backing up to COBOL. COBOL's 
principal attraction in the business comput- 
ing community has been that it is the most 
standardized of all the widely used lan- 
guages. COBOL provides facilities for storing 
dissimilar types of information mingled to- 
gether in transaction records intended to be 
stored in off line media like disks and 
magnetic tape. Pascal too has very powerful 
facilities for storing complex data records, 
and its facilities for building complex pro- 
grams are far superior to those of COBOL. 

Regarding the operating system support, 
we'll assume in the rest of this article that 
the user's Pascal program is developed under, 
and runs within, the UCSD (University of 
California at San Diego) Pascal Software 
System (see "UCSD Pascal: A Machine Inde- 
pendent System," May 1978 BYTE, page 
46). This system provides what amount to 
language extensions to Pascal which facili- 
tate the use of Pascal in writing interactive 
business programs. Some of these extensions 
will be mentioned at points in the discussion 
where they are used in our example. The 
accepted informal standard for the Pascal 
language, as described by Niklaus Wirth in 
his revised report on Pascal (Pascal User 
Manual and Report, K Jensen and N Wirth, 
Springer Verlag, New York/Heidelberg, 
1975), lacks definition of several facilities 
that are really essential if the language is to 
be convenient for writing business programs. 
On the other hand, Pascal provides an ex- 
tremely high level from which these facilities 
can be added. 

Transaction Records 

In Pascal, the programmer is required to 
declare what type of information will be 
stored under the identifier of each variable. 
Readers of BYTE should be familiar with 
the concept of type as it refers to an integer 
(whole number), real (floating point num- 
ber), or string (of characters) item stored in 
the program's memory. Readers may also be 
familiar with the concept of an array con- 
taining a collection of items all of the same 
type. In effect, an array is a composite type 
associating one identifier with a collection 
of many similar data items, ie: all integers 
or all reals, etc. Pascal allows one to declare 
one's own composite type containing a 
collection of items of dissimilar types. List- 
ing 1 gives a concrete example that might 
apply to the records of the Zyx company. 

In Pascal, any type declarations one 
wishes to make must appear in the main 
program or in a block (subroutine) before 
any variable identifiers are declared follow- 
ing the reserved word var. In the example 



1 24 August 1 978 © BYTE Publications Inc 



Circle 70 on inquiry card. 



Circle 291 on inquiry card. 



above, representing part of a block, the var- 
iable identifier inrec is to be used for tempo- 
rary working storage of a customer record 
read in from an external device such as disk. 
outrec is to be used to collect several data 
items together before writing out to the ex- 
ternal device. Both variables are declared to 
be laid out in memory according to the type 
declaration for customer. In other words, 
the declaration of customer describes the 
various fields of information that will be 
found in any record of that type, whether 
currently stored in main memory or on an 
external medium. 

The first field within a record of type 
customer is a name consisting of up to 30 
characters. The name is of type, string, 
which is a UCSD extension of the standard 
Pascal concept of a packed array of charac- 
ters. The type string is really just a prede- 
clared record type within standard Pascal. In 
addition to the packed array of characters, 
the record also contains a single byte field 
representing the number of characters cur- 
rently containing useful string information. 
In UCSD Pascal, a variable of type string 
with no reference to the maximum length 
(like the [30] in the name field) will be 
given a default maximum length of 80 char- 
acters. Characters are ASCII and are synony- 
mous with the concept of 8 bit bytes. 

The identifier chargesunpaid is an ex- 
tended precision integer represented inter- 
nally as a 32 bit binary number and limited 
to storing numbers with up to eight decimal 
digits of precision. Associated with charges- 
unpaid is a scale factor of two decimal digits, 
designed to represent dollars and cents. Both 
the extended precision concept and the deci- 
mal scaling factor are UCSD extensions to 
standard Pascal intended particularly for 
business use. Where no precision or scaling 
factor is mentioned in the type portion of 
an integer declaration (as with the fields 
areacode, prefix and extension), the system 
assumes that the programmer wants the 
standard integer precision on the machine 
being used. On most microcomputers this 
will be 16 bits, equivalent to about 4.5 
decimal digits. 

telephone is the identifier of a field 
within the customer record layout, where 
telephone is itself a record containing three 
fields, each of which is an integer. Depend- 
ing upon the purpose one might have in 
mind for the data on telephone numbers, it 
might be better to represent the telephone 
number field as a string of ten characters. 
We have used this representation mostly as 
an illustration of the language facilities. 

address is also the identifier of a field 
which is itself a record containing three 
fields. Both telephone and address are said 








yOU DIDNT KNOW! 



OAE'S new PP-2708/16 
PROM Programmer is the 
only programmer with all 
these features: 

• Converts a PROM memory 
socket to a table top pro- 
grammer: No complex inter- 
facing to wire — just plug it 
into a 2708 memory socket* 

• A short subroutine sends 
data over the address lines 
to program the PROM 

• Programs 2 PROMS for less 
than the cost of a personal- 
ity module. (2708s and TMS 
2716s) 

• Connect 2 or more in paral- 
lel — super for production 
programming 

• Complete with DC to DC 
switching invertor and 10 



"Pat s Pending 



turn cermet trimmers (for 
precision pulse width and 
amplitude alignment) 

• All packaged in a handsorr ' 
aluminum case 

PP-2708/16 ..A & T $29 

PP-2716 (Programs Intel's 
2716) A & T $295. 

OAE 

Oliver Advanced Engineering, Inc. 

676 West Wilson Avenue 

Glendale, Calif. 91203 

(213) 240-0080 



NewUVS-llE 
EPROM Erasing System 

Performance and Reliability 
at an affordable price! 




Now available . . . the newest member of UVFs growing 
family of quality EPROM Erasing Lamps. The UVS-11E 
Short Wave U V Lamp was designed specifically for the small 
systems user and computer hobbyist. It's compact, 
easy-to-use, and will erase up to 4 chips at one time. It even 
features a special safety interlock system for complete safety. 

This is the first UV erasing system to offer simple operation 
and foolproof safety features at an affordable price. Like all 
UVP products, the UVS-1 IE is quality-built and backed by 
45 years of U V technology. 

Order now from your local authorized UVP stocking dealer. 
Or write today for more information and name of nearest 
dealer. 



ULTRA-VIOLET PRODUCTS, INC. 

5100 Walnut Grove Avenue, San Gabriel, CA 91778 U.S.A. 



Circle 383 on inquiry card. 



w 

August 1978©BYTE Publications Inc 125 



type customer = 
record 

name: string [30] ; 
chargesunpaid: integer[8:2] ; 
telephone: 
record 

areacode: integer; 
prefix: integer; 
extension: integer 
end; 
address: 
record 

street: string [40] ; 
city state: string [40] ; 
zip: integer [5] 
end 
end [customer} ; 



x,y: real; 
i: integer; 
inrec, outrec: customer; 



Listing 1 ': User declared composite type declaration in 
Pascal. In Pascal, the programmer is required to declare 
what type of information will be stored under the identifier 
of each variable. Examples of standard predeclared types 
include integer and real. Pascal allows one to declare one's 
own composite type containing a collection of items of 
dissimilar types. In this example, the type "customer" has 
been created, consisting of a record of the variables name, 
chargesunpaid, telephone and address. String is a prede- 
clared composite type provided by UCSD 's Pascal system. 



to be "nested" inside the record of type 
customer. Pascal would allow us to nest 
record type fields within either telephone 
or address if we wished to do so, and those 
record fields could in turn contain other 
records. In this respect Pascal and COBOL 
are similar, though the Pascal facilities for 
record declarations are generally more flexi- 
ble. As in COBOL, one can declare that a 
particular transaction record may be used 
with several distinct field layouts, allowing 
a file to contain records with several differ- 
ent formats. 

In Pascal, one refers to a complete record 
by its identifier alone. We could transfer the 
entire content of inrec to outrec using the 
statement: 

outrec := inrec 

No concept similar to COBOL's MOVE 
CORRESPONDING statement is available to 
allow the transfer of similarly named fields 
between records declared to be laid out 
differently. 

If we wish to refer to a single field of a 
Pascal record, it is necessary to name both 
the record identifier and the field identifier. 
Thus we might assign a value to the name 
field of outrec as follows: 

outrec. name := 'John Q. Public' 



You can spend more time creating 
now that prototyping is such a snap. 



Talk about Faster and Easier! This has to be the 
world's most efficient way to build and test your 
computer circuits. A P Products, who brought you 
the solderless breadboard in the first place, now 
offers them with power. 

POWERACE, our new Power All Circuit Evalu- 
ator, accepts all DIP sizes, plus TO-5's and dis- 
cretes with leads up to .032." And something you'll 
really like is its capacity— more than any other 
power breadboard manufactured— with 256-5 tie- 



point terminals and 16-25 tie-point buses. 

For information on exactly which POWERACE 
is for you and where you can buy it, call our toll- 
free number. 800-321-9668. 

Faster and Easier is what we're all about. 

g|g AP PRODUCTS INCORPORATED 

Box 1 10 • 72 Corwin Drive, Painesville OH 44077 
_ (21 6) 354-21 01 TWX: 81 0-425-2250 






POWSMCE .: 



■■■■ . ■. 



f>owep»j«vc:e 






1 26 August 1 978 © BYTE Publications In 



Circle 12 on inquiry card. 



In the situation of complex record types 
with many nested records, one can often 
simplify the extra writing needed to refer 
to all the nested record identifiers by using 
the Pascal with statement. 

Interactive Input and Output 

Input and output (10) is the area of 
greatest importance in business applications 
where the standard Pascal definition lacks a 
few essential features. Standard Pascal input 
and output do provide an orientation simi- 
lar to some implementations of COBOL in 
that a file (an 10 device) has an associated 
buffer variable of the same type as that of 
the file itself. In the next section we'll 
consider files associated with record types. 

Published discussions of input and output 
in Standard Pascal are generally limited to 
handling files of type char, meaning that 
input and output are assumed to consist of 
a stream of characters. The standard identi- 
fier text is a convenient way to declare a 
file identifier as in: 

fid: text; 

which is equivalent to: 

fid: file of char; 

The standard Pascal read and write state- 



ments provide automatic formatting of 
external character strings representing inte- 
ger or floating point numbers into and from 
their corresponding internal integer and real 
representations. 

While the concept of type text is useful 
when working with magnetic tape devices or 
with card input and line printer output, it 
has proven difficult to use with interactive 
devices. The UCSD Pascal system is ex- 
tended for this purpose. The principal prob- 
lem with type text for interactive files is the 
standard Pascal definition of the read state- 
ment. read(fid,x) is equivalent to: 

x : fid t; 
get (fid) 

in which the content of the buffer variable 
is first assigned to the variable x, following 
which a new character is loaded into the 
file's buffer variable from the external de- 
vice. This is inconvenient when one would 
like to place a prompting message on a video 
display screen, using a simple write state- 
ment, following which the program should 
wait for input demanded by a read state- 
ment. The standard mechanism implies that 
the system looks ahead for a character to be 
loaded into the buffer variable. This is a 
great idea for tape files, but not at all con- 
venient for interactive devices. UCSD Pascal 





NORTHWEST" 
MICROCOMPUTER 
.SYSTEMS_ 



Fully integrated UCSD PASCAL 

CP/M* 

3Mhz 8085 CPU 

Double density DMA dish controller 

1 .2 Megabytes of on-line storage 

54 K of static RAM 

24x80, 12" CRT display 

RS232 Serial communication port 

RS232 Serial printer port 

TTL compatible paralleled ports 



NOW SHIPPING 
$7495 complete 

*CP/M is a trademark of Digical Research 
MAIN OFFICE: 121 EAST ELEVENTH AVE. 



NMS 85/P = 8085 + PASCAL 




Options include: 

Hardware floating point 

AMD 951 1 , 02 bit, arithmetic, trig. 

functions divide approximately 120 ms 
Graphics, bit-mapped dot 
5 Mhz 8085 CPU 
FORTRAN, BASIC-C, COBOL 
Applications software 

EUGENE, OREGON 97401 • (500)485-0626 



Circle 287 on inquiry card. 



August 1 978 © BYTE Publications Inc 1 27 



extends this concept by associating type 
interactive with interactive devices. Type 
interactive is the same as type text except 
that the buffer variable is loaded from the 
external device before the value in the buffer 
variable is moved to the program variable. 
In more explicit terms: 

var fid: interactive; 



get(fid); 
x : = fid t 

where the last two lines representread(fid,x). 
UCSD Pascal extends the idea of types 
text and interactive by allowing a string 
to be handled with minimum fuss. On 
read (fid ,strg) (or just read(strg), when re- 
ferring to the standard system file input), 
one types characters at a video display key- 
board with each character appearing im- 
mediately on the screen. If a character is 
mistyped it can be erased from the screen 
and the input buffer by pressing the back- 
space key. If one wants to erase the entire 
input buffer for a clean start (with all typed 
characters wiped off the screen), one presses 
the delete or rubout key. The read operation 
is terminated when return is pressed, where- 
upon one can determine the number of 



characters actually input into the variable 
strg by using the built-in string function 
length (strg). On output, the write statement 
determines how many characters to send 
from a string variable using the length field 
associated with that variable. For example, 

w/7£e('Hello There'); 
and 

strg := 'Hello There'; 



write(strg); 

would both produce the same 2 word mes- 
sage on the output device. As in Standard 
Pascal, the width of the field of characters 
sent from the write statement can be con- 
trolled as follows: 

write (strg: width) 

Disk Input and Output 

One of the main reasons for using a disk 
file is to allow rapid random access to any 
selected record in the file. Access to a floppy 
disk record takes roughly 0.25 seconds, 
whereas access to a record on a tape cassette 
or cartridge can take many seconds or more 



MICROCOMPUTER 
DIGITAL ELECTRONICS 
SHORT COURSE WEEK 



Trenton State 
College 

Aug. 21-25, 1978 



Assembly Language Programming and Interfacing for the 8080, 8085, 
and the Z80 Microprocessor /$350 

Instructor: Dr. Allen Katz, Chairperson of the Engineering Technology Department of 
Trenton State College 

Programming in Basic for the Microcomputer Owner /$300 

Instructor: Dr. Edward Conjura, Associate Chairperson of the Mathematical Sciences 
Department of Trenton State College 



Microcomputer Digital Logic Circuits /$300 

Instructor: Dr. Alois Riederer, Coordinator of the Electronics Engineering 
Technology Program at Trenton State College 



College credit can be arranged. On-campus housing and meals are 
available. For information, contact: Division of Continuing and 
Adult Education, Trenton State College, Hillwood Lakes, P.O. 
Box 940, Trenton, New Jersey 08626. 

Telephone: (609)-771-2255 




1 28 August 1978 © BYTE Publications Inc 



Circle 379 on inquiry card. 



than a minute. Interactive business process- 
ing usually requires files to be maintained 
on an external medium like disk or tape be- 
cause the main memory of a microcomputer 
or minicomputer is usually not large enough 
to contain a complete file at one time. Ran- 
dom access is almost mandatory in most 
cases to avoid long waiting times for the 
people using the computer. 

For example, the Zyx company might 
have a database of customer records in a file 
fcust declared as follows: 

fcust: file of customer; 

within the variable declarations of a Pascal 
program. When a customer arrives to ask for 
information, a Zyx staff member wants im- 
mediate access to the record associated with 
that customer in the disk file. Standard 
Pascal provides no way to reach the cus- 
tomer's record without sequentially reading 
many other records: usually starting at the 
beginning of the file. UCSD Pascal allows 
one to position the record number pointer 
of the file using the built-in seek statement, 
for example: 

seek (fcust, recnumber) 

Following execution of this statement, the 
standard procedure call get(fcust) would load 



the selected record numbered recnumber 
into the buffer variable of the fcust file. 
Contents of the buffer could then be altered 
directly or moved to other variables in the 
program, get causes the record number 
pointer associated with the file to be ad- 
vanced to the next record in sequence. If 
you want to change the contents of the 
buffer variable and then return the changed 
contents to the disk record numbered 
recnumber using put(fciist), you would first 
have to call seek again. The get and put pro- 
cedures of Standard Pascal are designed with 
sequential tape files in mind, and they can 
also be used for sequential reading of disk 
files. Use of the seek procedure as described 
allows random access to disk files with mini- 
mum alteration of the standard language. 

Several aspects of disk file handling are 
very important for simplifying the task of 
the business application programmer, though 
not specified as part of the Pascal language. 
For example, standard floppy disk media are 
usually partitioned into sectors of 128 bytes 
each. In some operating systems, such as the 
Digital Equipment RT1 1 operating system, 
a file is made to appear as partitioned into 
physical records of 512 bytes called blocks 
(UCSD Pascal system uses this convention). 
Typically, the record layout a programmer 
wants to use (such as customer in our ex- 



INTRODUCING COMPU-KIT 




DEALER 
INQUIRIES INVITED 



Finally, the one tool kit designed especially for home 
computers. From assembling kits to servicing existing 
equipment, this set of tools is the most comprehensive of its 
kind on the market. 

This fine kit includes such tools as: wire wrapping tool, 
snap ring pliers, screwdrivers, nutdrivers, soldering iron, and 
much more. All of the tools are top quality, manufactured by 
such companies as: Xcelite, Weller, Utica, and Proto. The 
Compu-Kit® is available with or without a Triplet 310 V.O.M. 

Compu-Kit $159.00 

Compu-Kit with V.O.M $214.00 

Compu-Kit Division 
Video Spectrum Industries 

P.O. Box 20847 Dallas, Texas 75220 
Phone: 214/358-1414 

To order — send check or money order, or charge 
to your Master Charge or Visa card. 

□ I've enclosed check or money order in the 
amount of $ 



□ Master Charge 
Account Number (all digits) 
I I 1 I III 111 ' 



□ Visa 



TT 



Inter Bank Number 



Signature 



Circle 384 on inquiry card. 



August 1978 © BYTE Publications Inc 1 29 



ample) does not result in a neat fit with the 
sector or block size demanded by the oper- 
ating system. This means that a logical rec- 
ord associated with a record type declaration 
in Pascal may occasionally be split between 
two physical records on the disk. The oper- 
ating system should allow the Pascal pro- 
grammer to get a record from the disk or 
put a record to the disk without concern for 
this complication. The system should main- 
tain a directory of disk files so that the pro- 
grammer need not be concerned with the 
actual location of a file on the disk, but only 
with the number of a logical record counting 
from the beginning of the file. 

The programmer of a business applica- 
tions program package needs to have a 
simple way to cause a program to call for 
changes in the library of disk files main- 
tained by the program. For example, an 
obsolete copy of a master file might be re- 
moved from the directory, or its directory 
name changed. The UCSD Pascal system pro- 
vides these and other facilities to make disk 
file handling as painless as possible on a 
small machine. 

Keeping Track of Categories of Data 

One of the common problems in business 
programming is identifying people or things 
with certain groupings or categories in order 
to simplify the handling of data on those 
people or things. For example, the Zyx com- 
pany might want to characterize some cus- 
tomers as primarily oriented to gizmos made 



type 

manuf = (able, baker, Charlie, davis, edwards, Jones, smith, none); 
customer = 
record 

name: string[30] ; 
chargesunpaid: integer [8: 2] ; 
equipment: set of manuf; 
telephone: 
record 

areacode: integer; 
prefix: integer; 
extension: integer 
end; 
address: 
record 

street: string [40] ; 
citystate: string[40] ; 
zip: integer [5] 
end 
end [customer}; 

var 

x,y: real; 
i: integer; 
supplier: manuf; 
inrec, outrec: customer; 

Listing 2: An expansion of the Pascal code in listing I illustrating the use of 
sets. The type manuf has been added, which can be associated with a variable 
allowed to assume only the values enumerated in the declaration. For ex- 
ample, the new variable supplier, of type manuf, may take on the value of 
any of the items in the manuf list such as able or davis, but no others outside 
the type. 



by certain manufacturers, such as the Able, 
Baker, Charlie, Davis, Edwards, Jones and 
Smith companies. Within the product lines 
of these companies, Zyx might also want to 
have ready access to a record showing which 
selection of all the possible gizmo modules 
a customer might have. Thus, when a cus- 
tomer makes an inquiry or a manufacturer 
brings out a new type of module, Zyx staff 
members could reduce the effort in knowing 
how to deal with the customer. For ex- 
ample, a printed promotional brochure 
might be sent only to the customers asso- 
ciated with an appropriate combination of 
categories. 

In virtually any programming language, 
this problem can generally be solved by stor- 
ing descriptive strings as additional fields of 
the customer record. However, the strings 
can take up far more space than one would 
like (particularly on a minifloppy disk!), and 
they are awkward to use when you are sim- 
ply searching through a file for records cor- 
responding to a particular combination of 
categories. For example, we might want to 
search the file to identify all customers who 
own gizmos made by the Able, Jones and 
Smith companies who also have a particular 
type of add-on module. (If you are having 
trouble relating to gizmos, how about S-100 
bus microcomputers with a minimum of 
16 K bytes of memory?) 

To solve the space problems in storing 
categories information, a standard technique 
in traditional programming languages in- 
volves deciding on a set of codes to represent 
the various categories. In our simple exam- 
ple enumerating the gizmo manufacturers, 
we might store a single letter representing 
each manufacturer, such as A for Able, B for 
Baker, and so on. But how do we store the 
information that a particular customer is 
associated with two or more of these codes? 
Without a complex indexing mechanism, a 
random access disk file virtually requires 
that all logical records be of the same size. 
Do we provide an array for storing these 
codes? How long does the array need to be 
to account for all possible combinations of 
codes for our customers? Are we willing to 
put up with inaccurate data on a few cus- 
tomers in order to save large amounts of file 
space for the great majority of customers? 
How do we write a search program to go 
through the file quickly to find all the cus- 
tomers associated with a specific combina- 
tion of categories? The reader might well 
pause at this point to consider how to ac- 
complish these tasks with his or her favorite 
programming language. 

The Pascal facilities for handling sets are 
designed to make program solutions for 
problems like these as painless as possible. 



130 



August 1978 ©BYTE Publications Inc 



For example, we might expand the declara- 
tions given earlier as shown in listing 2. 

We have added the declaration of a new 
type manuf which can be associated with a 
variable allowed to assume only the values 
enumerated in the declaration. For example, 
the new variable supplier is allowed to be 
assigned the value able, or Jones, from the 
list of enumerated identifiers. 

Also declared as a new field of the 
customer record type is equipment, a set of 
members selected from the type manuf. 
If a customer of Zyx owned gizmos made 
by Baker, Edwards and Smith companies, 
the following assignment statement might 
appear in a simple program: 

outrec. equip := [baker, edwards, smith] 

where the quantity in brackets on the right 
side is a set constant stating that items are 
present from the three manufacturers noted. 
For an interactive business file maintenance 
program, the record of a new customer 
showing no association with a manufacturer 
would most likely be initialized using an 
empty set constant: 

outrec. equip := [ / 

Then, when the customer acquired his or her 
first gizmo, we might find a statement such 
as: 

outrec. equip := outrec. equip + f edwards J 

which would form the union of the old value 
of the equip set with a new set constant 
value. In other words, equip would now 
have a notation indicating the presence of 
edwards in addition to what was previously 
noted in equip. We could continue adding 
notations of other gizmo acquisitions when 
appropriate. In fact this process is likely to 
assign a value to a simple variable of the set 
type associated with manuf; then that vari- 
able would be used elsewhere in the program 
to augment the noted membership of equip. 

Pascal's facilities for handling sets are 
advantageous in many ways. A set is gener- 
ally stored in memory as an array of binary 
bits which are made accessible in a special 
way. In UCSD Pascal, a set is stored as a 
string of bytes, each byte containing up to 
8 bits to indicate whether a corresponding 
value is present in the set. Only the number 
of bytes needed to hold the declared number 
of set members need be stored. If, as is 
usual, one needs several dozen members in 
a set for a business application, the space 
occupied is very little more than the mini- 
mum needed. UCSD Pascal allows a set to 
have as many as 4080 members. 

Once the value of a set field of a record 
has been assigned, it is readily possible to 
test whether a customer record is associated 



with a desired combination of members. For 
example, to determine whether a customer 
is noted as owning gizmos made by Baker, 
Edwards or Jones companies, we could use 
an If statement such as: 

if (outrec. equip * [ baker,edwards,jones] ) O [ ] 
then 

begin . . . end; 

Here the expression within parentheses 
(on the left of "<>") isolates the members 
of equip falling in the group Baker, Edwards 
and Jones. The parenthesized expression is 
said to be the intersection of the value in the 
equip field in outrec and the set constant 
within square brackets. The comparison indi- 
cated by <> then asks whether the result of 
the intersection operation has left any mem- 
bers by asking whether the result is an emp- 
ty set. If not, then at least one of the three 
members must be present, and the com- 
pound statement (begin . . . end) following 
then is executed. 

The alternative to this test for set mem- 
bership would usually be a complex se- 
quence of IF tests in the traditional lan- 
guages. The set combining and testing 
operations can be implemented efficiently 
by the Pascal system. Thus they allow a 



moo mi 



l£ MOO 



mam:, 

mc o mmnpRAmc sooo 



• NOT A KIT 

• 8v<«.15A, ±16v(?i3A power 

• Rack mountable g - 

• 15 slot motherboard \ 

• Card cage 

• Fan. line cord, fuse, 
switch, EMI filter 

• Desk top version option 

• 8v@30A, ±16v@10A option 

• voltage monitor option 

• 100 pin connectors optional 



Rack 
mounted 
model From 
S200 



top model 
From S235 

Write or call for a copy of our 

detailed brochure which includes 

our application note 

BUILDING CHEAP COMPUTERS. 

INI"EGR4ND 

8474 Ave 296 • Visalia. CA 93277 • (209) 733 9288 
We accept BankAmencard/Visa and Master Charge 



Circle 179 on inquiry card. 



August 1978 ©BYTE Publications Inc 131 



The UCSD Pascal sys- 
tem was described in the 
May 1978 BYTE, page 46. 
Interested readers can re- 
ceive a copy of the soft- 
ware for a $200 subscrip- 
tion fee, which includes 
the software manual. The 
manual alone is available 
for $15 postpaid. Order 
from: Institute for Infor- 
mation Systems, UCSD, 
mailcode C-021, La Jolla 
CA 92093, (714) 452- 
4256. Checks should be 
made payable to the 
Regents of the University 
of California. 



Manufacturers Known to 
Carry UCSD Pascal at Press 
Time 

Terak Corporation 
14425 N Scottsdale Rd 
Suite 100 
Scottsdale AZ 85260 

Northwest Micro Systems 
121 E Eleventh Av 
Eugene OR 97401 

Altos Computer Systems 
23 78B Walsh Av 
Santa Clara CA 95050 

Prices on all these sys- 
tems are in the $5000 to 
$8000 range for the total 
package purchased new by 
individuals at retail. For 
this one gets a high level 
language system for per- 
sonal use which is often 
far superior to the run-of- 
the-mill traditional time- 
shared minicomputer or 
maxicomputer. Rumor 

(but no confirmation yet) 
has it that UCSD Pascal 
will shortly be available 
on the Heathkit H-11 and 
other high end personal 
computing systems. 



program to be written more simply and 
occupy less space. They also make the oper- 
ations undertaken by the program more 
obvious to anyone versed in Pascal, thus 
making a complex program more easily 
maintainable and bug free. 

There's a Lot More 

It is not possible to present a comprehen- 
sive view of how one uses a language for 
complex business programming within a 
short article. For example, we have not de- 
scribed the use of Pascal subrange variables, 
which allow a programmer to state that a 
variable is permitted to contain only certain 
declared values. If an attempt is made to 
assign to the variable a value outside the de- 
clared range, the program either terminates 
abnormally or (if Pascal is extended in a 
simple way) the programmer may provide a 
recovery block in which corrective measures 
may be taken. Data validation is one of the 
most common problems in business data 
processing. At UCSD, we feel that the addi- 
tion of a simple recovery block mechanism 
is essential to allow reduction in program 
complexity for handling the many excep- 
tional circumstances that show up in busi- 
ness data, without unnecessary interruption 
of processing. 

A Note on Pascal Extensions 

Though Pascal does seem to require a few 
extensions to make business application pro- 
gramming truly practical, the language pro- 
vides an extremely powerful base from 
which to work. One of the strengths of 
Pascal, according to the intentions of its 
designer, is that it offers all this power in a 
remarkably simple and self-consistent form. 
The necessary extensions can be made in 
ways that generally retain this consistency 
so as to be relatively obvious to the program- 
mer. We feel that Pascal is by far the best 
language available for adaptation to inter- 
active business processing on small machines. 
We would be happy to send further informa- 
tion about how we use the language for 
business or real time applications to anyone 
who writes to us. 

The questions of whether standard 
Pascal should be extended, and how, are 
currently being debated intensely in the 
international Pascal Users Group. Each 
special interest community of Pascal users 
has its own list of extensions considered 
essential to make the language a practical 
tool for developing software products in that 
community. Even the question of what 
extensions arc essential is being debated, 
since it is possible to use the facilities of the 



standard Pascal language to create a library 
of routines to handle the user's special 
problems in most cases. In general, an imple- 
mentor should consider extending the 
language only in cases where the result will 
be simpler and more reliable or efficient 
programs. 

This article discusses extensions that the 
author feels arc essential for business appli- 
cations. Other communities with very strong 
interests in Pascal work with real time appli- 
cations, development of system software 
such as operating systems and compilers, 
interactive systems such as computer assisted 
instruction, scientific computations, and so 
on. Of course these communities do overlap 
substantially. If the essential extensions 
needed by all these communities were added 
to the standard Pascal language, the simpli- 
city and self-consistency that make the 
language so important would probably be 
destroyed. Therefore, it is very unlikely that 
an eventual formal standard for the Pascal 
language will include any but the most 
widely needed extensions currently under 
discussion. 

This situation leaves many Pascal advo- 
cates very much worried that there will be 
no effective standards for the extended 
language features needed by the special 
interest communities. There has been 
discussion within the Pascal Users Group 
about the possibility of encouraging develop- 
ment of common interest supersets of the 
language for specialized uses. Ideally, lan- 
guage standardization is a process which 
should proceed slowly giving attention to 
the ideas of all experts who wish to be 
heard. In practice, the use of Pascal is 
growing so fast throughout the computer 
industry that close coordination of the 
extensions made by many implementors 
has become virtually impossible. We at 
UCSD have set ourselves the limited goal 
of seeking coordination and cooperation 
on Pascal extensions for system program- 
ming (including those for business and real 
time applications) among a number of 
industrial firms that seem most active in use 
of the language, particularly as regards small 
computers. For reasons associated with their 
own proprietary interests, these firms will 
generally be able to cooperate on only some 
of the most widely used language extensions 
within their special interest communities. A 
Pascal language extensions workshop was 
held at UCSD in July of this year primarily 
to help bring about this coordination. We 
intend to continue working as closely as 
possible with the international Pascal Users 
Group, and to take guidance from the PUG 
leadership on extension issues whenever 
practical." 



132 August 19786BYTE Publications Inc 



Continued from page 6 

stroking of programs or object code for 
programs. The traditional manual and job 
shop methods of production of copies of 
software for distribution are not appropriate 
when we think of a mass market of 10,000 
to 100,000 copies (or more?) of a program 
distributed via retailers and mail order 
houses with a retail price of (for example) 
$9.95. 

The Software Distribution Model 

Given an identifiable set of computers 
with sufficiently similar characteristics, soft- 
ware can be marketed and distributed to 
multiple users. 

The "sufficiently similar" characteristics 
which make a program marketable to mul- 
tiple users include the formal representation 
of the software, and the machine readable 
medium in which the software is delivered. 
The machine readable representation of a 
program product is always accompanied on 
delivery by extensive printed documentation. 
At a minimum this documentation describes 
how to use the product; in the optimal case 
it includes details of the actual algorithms 
employed. To summarize, the key points of 
a delivered product are: 

• Formal representation. 

• Machine readable medium. 

• Documentation. 

I'll be making evaluations and comments 
largely on the subject of formal representa- 
tion from the point of view of the new mass 
market for software which is developing in 
the personal computing field. 

Formal Representation 

The formal representation of programs to 
be distributed by a software vendor is one of 
the key choices which has to be made. At 
one extreme, the vendor could provide 
extremely machine dependent and configu- 
ration dependent low level code for a 
particular computer system product. At the 
other extreme, the vendor of software might 
provide a largely machine independent 
formal representation in a high level language 
shared by a number of computers. At an 
intermediate point between these extremes, 
especially in an era of mass production of a 
small number of processor architectures as 
microcomputer systems, we find the possi- 
bility of delivering configuration independent 
but machine dependent relocatable repre- 
sentations of low level code for a particular 
microprocessor instruction set. 

For that class of software products 
supplied by the original manufacturer of a 



particular computer system, there is no 
problem providing compatible software at 
whatever level of representation is chosen. 
The manufacturer of a system after all 
controls the detail choices with respect to 
processor hardware, system configuration 
and systems software. Since all the details 
are decided by the particular design, it is 
even practical to market software in the 
form of a memory image at the lowest 
level (possibly in read only memory parts). 
Since the choice of processor is well defined, 
the manufacturer can also provide modules 
of software represented as relocatable 
machine code, along with a suitable loader 
program which is part of his systems soft- 
ware. Since the detailed choice of high level 
language processors is well defined, the 
manufacturer can also provide applications 
and systems programs represented in his or 
her high level language. The manufacturer 
of computer systems products at most must 
deal with a small integer number of pro- 
cessors and high level languages. 

We find this model of software delivery 
by the manufacturer of a system throughout 
the computer industry to date. Every main- 
frame and minicomputer comes with low 
level representations of systems software and 
(eventually, if not at introduction) with user 



Articles Policy 

BYTE Publications Inc h continually 
seeking quality manuscripts written by 
individuals who are applying personal 
computer systems, designing such sys- 
tems, or who have knowledge which 
will prove useful to our readers, hor 
a more informal description of pro- 
cedures and requirements, potential 
authors should send a self-addressed, 
stamped envelope to BYTE Authors' 
Guide, 70 Main St, Peterborough NH 
034 58. 

Articles which ore accepted are 
purchased with a rate of $45 per pub- 
lished page, based on technical quality 
and suitability for the intended reader- 
ship. As to articles appearing in BYTE 
magazine, each month, the authors of 
the two leading articles in the reader 
poll (BYTE's Ongoing Monitor Box or 
"BOMB"} are presented with bonus 
checks of $100 and $50. Unsolicited 
materials should be accompanied by 
full name and address, as well as return 
postage.' 



Tremendous Savings 
on Refurbished AJ 
Couplers/Modems 

Your chance to buy the best from the world leader in 
data communications. We have a variety of couplers 
and modems — formerly on lease to our customers 
— fully refurbished at our factory. This is a rare 
opportunity for you to have the same models used 
by the largest companies in the world. 

• Some models under $100! 

• Direct from AJ factory 

• 30-day parts/labor warranty 

• Nationwide AJ service network 

• Fast delivery 

• Variety of models — up to 1200 baud 

• Limited quantities 

Act now. First come, first served. Write Anderson 
Jacobson, Inc., 521 Charcot Ave., San Jose, 
CA 95131. 

OR CALL (408) 263-8520 




Circle 9 on inquiry card. 



August 1978 ©BYTE Publications Inc 133 



Circle 43 on inquiry card. 




I 

I 

V 



ADM-3A 756 



00* 



IN KIT FORM 

80 CHARACTERS/LINE 
• 24 LINES/SCREEN 
ADDRESSABLE CURSUR 
9, 10, or 11 BIT WORDS 



Plus Shipping 
and Handling 



• 75-19,200 BAUD 

• FULL & HALF DUPLEX 

• ODD/EVEN/NO PARITY 

• RS232 INTERFACE OR 
20 ma CURRENT LOOP 



m 



GET COMPLETE DETAILS WITH A DIRECT CALL: 
214 258-24111 TWX 910-860-5761 TELEX 75-0022 

800 527-3248 



capital 



930 N. BELTLINE 



equipment brokers 
IRVING, TEXAS 75061 I 



LSI-11 TIME 




It's TIME you brought your LSI-11 up to DATE. TIME and 

DATE, two important parameters in the computer world, are 
available to your LSI-11 on one DUAL SIZE BOARD When 
requested, the TCU-50D will present you with the date (month 
and day), time (hour and minutes), and seconds. Turn your 
computer off and forget about the time — your battery sup- 
ported TCU-50D won't, not for 3 months anyway. The correct 
date and time will be there when you power up. 

The TCU-50D is shipped preset to your local time, but can be set 
to any time you want by a simple software routine. 

AT $295 
YOU CANT AFFORD TO IGNORE TIME 

Time is only one way we can help you upgrade your LSI-11 or 
PDP-11 system. We'd also like to tell you about the others. So 
contact Digital Pathways if you're into -ll's. We are too. 

DIGITAL PrtTHWrM IMC. 

4151 Middlefield Road • Palo Alto, 
California 94306 • Telephone (415) 493-5544 




libraries of high level and low level programs 
applicable with the particular systems. At 
the lowest end of the personal computer 
spectrum of functions we find a similar case: 
the major programmable calculator manu- 
facturers with their independent incompat- 
ible systems provide users with libraries of 
magnetic cards or read only memories 
expressed in a form consistent with the 
particular machines. 

But a characteristic of manufacturers of 
computers is already evident again in the 
personal computer world, just as it previously 
existed in the world of minicomputers and 
larger computers: whatever the resources of 
the manufacturer, there is no way it can 
cover all the myriad applications possible for 
its computer. To draw an analogy from 
music, we hardly expect a piano or organ 
company to supply sheet music ("software") 
with the musical instrument which is suit- 
able for every user's tastes. The music "user" 
purchases scores according to personal likes. 
A personal computer provides an analogous 
opportunity to exercise tastes in software 
characteristics. Even for the traditional high 
priced computer, customization through 
software is for the most part independent of 
the manufacturer once the basic operating 
system and software tools have been defined. 

In software, the past has seen a large 
number of custom software vendors grow 
large in the niches of large scale computing 
and minicomputer technology. As the 
number of people using personal computer 
systems increases due to the low price of 
these systems, independent software pub- 
lishing seems to be one of the most promising 
ways to assure a wealth of options to the 
user, provided that the difficulties of the N- 
representation problem can be overcome. 

The N-Representation Problem 

For the moment, let's ignore all reference 
to the problem of machine readable data 
compatibility and simply look at the user's 
point of view with respect to software. The 
user has purchased computer X for use in 
personal or professional contexts. When he 
or she has made the commitment to the sys- 
tem, our user can in general expect to be 
able to conveniently load programs created 
on other X systems from the same manu- 
facturer. But what if he or she wants to load 
a program created by a neighbor on com- 
puter Y from another manufacturer? Or if 
the user wants to load a program from an 
independent software vendor? The variety of 
representations available in the traditional 
world of computers as well as the personal 
computer world is large — even within the 
framework of nominally machine indepen- 
dent high level languages. 

Confining ourselves just to machine 



134 August 1978 © BYTE Publications Inc 



Circle 91 on inquiry card. 



Circle 40 on inquiry card. 



dependent microcomputer assembly lan- 
guages, there is a wide choice of architec- 
tures. At present we find the 8080, Z-80, 
6502 and 6800 dominate personal computer 
architectures. Over the next two to three 
years we will find added to this list the 
9900, 8086, Z-8000 and 6809. If the user of 
a personal computer sees a neat application 
system which only comes represented in 
8080 code when he has a 6800, that user 
is effectively unable to run it without a 
recoding effort. (But even confining our- 
selves to assembly languages of the same 
machine design, there is often incompati- 
bility. One vendor of Z-80 software provided 
an assembler using a hybrid extension of 
8080 mnemonics, while others use Zilog 
Z-80 mnemonics. So the same processor has 
at least two low level languages available.) 

Turning to high level languages, the 
machine independence of software becomes 
much greater. But current practices in the 
personal computing industry are far from 
machine independent. There is a de facto 
standard BASIC interpreter in existence, 
available on most 6502 and 8080 or Z-80 
systems. This standard high level language 
is that defined by the Microsoft company. 
Extensions and changes of detail accompany 
each implementation, especially when a 
given computer has specialized graphics 
capabilities not available on all the other 
computers. With the Microsoft design, the 
major portions of an extended BASIC are 
identical over a large set of machines. 

But Microsoft BASIC is not the only 
interpreter in existence. A very prominent 
BASIC in terms of the number of users 
employing it as represented in the unsolicited 
articles received at BYTE is the North Star 
BASIC interpreter. This interpreter is widely 
used on 8080 and Z-80 systems because of 
the wide availability of the small floppy disk 
systems manufactured by that firm: buying 
a North Star disk peripheral for an S-100 bus 
system gets the user a limited operating sys- 
tem and the North Star BASIC. The North 
Star BASIC interpreter and the Microsoft 
interpreter are inconsistent in a number of 
fundamental ways in areas of string handling 
and array dimensions. And these are but the 
two most prominent interpreters as seen 
from my point of view as editor of BYTE. I 
could almost comment that manufacturers 
take any random formulation of a language 
vaguely resembling BASIC as originally 
implemented at Dartmouth, and call it 
BASIC for marketing reasons. (The tempta- 
tion to add or delete "features" in a language 
is of course not confined to BASIC alone.) 

From the point of view of a software 
publisher, the economies of scale obtainable 
from a mass market will only be obtained if 
we use a common representation for applica- 



c a rtafl a.. ^ 

systems, inc. ^^ 

Boards BD® Something " 






CL2400 Real Time Clock 
$98/ Kit $135/ Assembled 




If your system needs to know 
what time it is, our CL2400 is 
the board for you. The present 
time in hours, minutes, and sec- 
onds is always available for input, 
and is continuously updated by 
the highly accurate 60 Hz power 
line frequency. Need periodic in- 
terrups? The CL2400 can do 
that, too, at any of 6 rates. Reference manual with BASIC and 
assembly language software examples included. 



If your system needs on/off con- 
trol of lights, motors, appli- 
ances, etc., our PC3200 System 
components are for you. Con- 
trol boards allow one 1/0 port to 
control 32 (PC3232) or 16 
(PC3216) external Power Con- 
trol Units, such as the PC3202 
which controls 120 VAC loads to 
400 Watts. Optically isolated.low 
voltage, current-limited control 
lines are standard in this growing 
product line. 




P.O. Box 516 

La Canada, CA 91011 

(213) 790-7957 



PC3200 

Power Control System 

PC3232 $299/Klt $360/Assm. 

PC3216$189/Klt $240/Assm. 

PC3203 $39.50/Kit $ 52/Assm. 

(formerly comptek) 




RELIABILITY 

QUALITY 

DEPENDABILITY 



ADDRESSING 

PROTECT 

BUFFERING 

LOW POWER 

WAIT STATES 

QUALITY 

GUARANTEE 

DELIVERY 

PHANTOM 

TESTING 



8K STATIC RAM 
ASSEMBLED 
S-100 




MEMORY DISABLE IS IMPLEMENTED VIA PHANTOM (PIN 67) 



SPECIAL 



INTRODUCTORY 

PRICE 

ASSEMBLED/TESTED 



(714)992-5540 
2555 E. CHAPMAN AVE. 
SUITE 604 
FULLERTON, CA 92631 



45U ns 13U lib 

$14995 $18995 

CALIFORNIA RESIDENTS ADD 6% TAX 

J DIGITALy JT_ 



Circle 294 on inquiry card. 



August 1978 © BYTE Publications Inc 135 



tions and systems programs which can be 
correctly executed by any low level architec- 
ture available in the marketplace. With a 
large number of mutually incompatible soft- 
ware systems, this is not the case. It is my 
contention that the N-representation prob- 
lem can be solved once by use of appropriate 
intermediate language representation and 
efficient interpreters for particular micro- 
processors. Then the key part of an applica- 
tion or systems program product is the high 
level language documentation, the equivalent 
lower level intermediate language object 
code, and the user documentation: all of 
course independent of the final machine 
upon which the software will run. The only 
machine dependent part which needs to be 
published is the intermediate language 
interpreter for a given machine and system 
configuration. This machine dependent part 
needs only one definition and one publica- 
tion version. 

Given an interpreter definition, the 
standard high level language, and the stand- 
ard intermediate language representation of 
programs, the user can be assured that once 
the object code is in place in his machine, 
the program will run with the same charac- 
teristics as described in the documentation 
for a radically different machine. (Hardware 
differences due to favorable number repre- 
sentations will make differences in precision 
and accumulated numeric error effects of 
course.) 

Ruling Out BASIC 

To the software publisher, a choice of a 
high level language and intermediate repre- 
sentation for executable code presents a 
moderate problem. The widely used BASIC 



interpreters could be used for a perfectly 
functional representation for the code of 
many programs. But such interpreters suffer 
from many inherent disadvantages: 

• Lack of uniform representation. 

• Slowness of execution. 

• Archaic nature of BASIC. 

• Lack of a compact machine independ- 
ent compiled form. 

I've already commented on the lack of 
uniformity in the various BASIC implemen- 
tations. The slowness of execution is inherent 
in this type of interpreter. In extreme cases 
an active search through memory for a label 
op code is used to find targets of subroutine 
calls or unconditional transfers. At best 
there is a level of semantic interpretation 
necessary to convert a condensed version of 
the source code into executed code. Many 
applications and systems programs cannot 
tolerate the lack of speed inherent in such 
interpreters. But BASIC can be compiled 
instead of interpreted, so this argument 
alone is far from sufficient to rule out 
BASIC. 

More important, a language like BASIC 
as presently implemented reflects an earlier 
state in the evolution of computer languages, 
circa the early 1960s, with innumerable 
ad hoc patches and fixups to add "features." 
Through the 1960s and early 1970s advances 
were made in the concept of what a 
computer language should be in order to 
be convenient to use and conducive to 
error free thinking and programming. (For 
just one contrast, consider this: where the 
BASIC programmer is required to go almost 
to the machine language level of assigning 
numbers to locations in a program, good 



$95 Stand Alone Video Terminal 



i ;, #*';ro *+.-. 





abcdefQhi jklflnop4rstuuwxyz<l>' 



SCT-100 l-KATURRS: 



i Serial ASCII or BAUDOT w 



Baud rates 



. M, •"» * » K - 

fMB aft • » » * A Vk * 



$187 Assembled br $157 Kit (Partial Kit $95) 
Full cursor control with scrolling and pagin 
On board power supply 

i Many additional features 
Call or write today. MC/VISA accepted 

XITEX CORP. P.O. Box #20887 
/ Dallas, Texas, 75220 •Phone (214)386-3859 
/ Overseas orders and dealer inquiries welcome 



136 August 1978©BYTE Publications Inc 



Circle 400 on inquiry card. 



contemporary high level languages such as 
Pascal and its relatives allow the programmer 
to use meaningful names based on the appli- 
cation being programmed.) 

Finally, BASIC as implemented in most 
cases suffers from the lack of a compact 
externally available machine independent 
version of the compiled form of a program. 
This is an important requirement for the 
software publisher, since executable code 
must always be supplied in some machine 
readable representation, and compactness of 
representation is important if the inconven- 
ience of relatively slow input techniques is 
not to discourage the user. 

For the reasons just summarized, BASIC 
is not the ultimate form in which programs 
are best published. But if BASIC is not the 
personal computing representation which 
minimizes the N-representation problem, 
then what is a better choice? 

Enter Pascal 

My own personal interest in Pascal came 
about for reasons which I summarized in the 
December 1977 BYTE, page 6, in an essay 
entitled "Is Pascal the Next BASIC?" In 
this issue several excellent articles including 
those by Ken Bowles, Chip Weems and Allan 
Schwartz provide further rationale by way 
of tutorial argument and example. 

This personal viewpoint with respect to 
Pascal is that of a user of a personal com- 
puter system who wants to conveniently and 
quickly implement applications and systems 
software projects ranging from the sublime 
to the ridiculous. In the sublime category, I 
include systems software as an art form in 
itself. I also include writing systems software 
for my pet projects in musical applications 



of computers, sophisticated games, and 
some experiments in the exploration of 
artificial intelligence concepts. In the 
ridiculous category, I include such mundane 
tasks as trivial games, income tax calcula- 
tions, personal mailing lists of friends and 
relations, etc. The point about Pascal to be 
made here is that it js a language well adapted 
to the utility of computing, whatever your 
personal definition of utility is. In the range 
of applications I expect that the Pascal 
approach to structured, self-documenting, 
machine independent code will suffice with 
only an extremely rare necessity to resort to 
ad hoc kluges in the name of time or memory 
space efficiency. 

From general reading I knew that a Pascal 
compiler was available and easily transferable 
to new machines through the use of the 
technique of "P-code" intermediate language 
representations. This availability throughout 
the academic world was one of the reasons 
for the spread of Pascal, for it is one thing to 
extemporize about the virtues of a represen- 
tation and another thing to be able to 
actually write and examine the properties of 
code in that representation. Since the 
original Pascal compilers from Jensen and 
Wirth et al in Zurich were written in Pascal, 
producing a P-code intermediate language 
output file, the task of making the compiler 
run on a totally new machine architecture 
was reduced to a relatively simple task of 
writing an emulator for the hypothetical 
"P-machine" which executes "P-code" as its 
machine language. 

What I did not know at the time of my 
earlier comments in these pages is the extent 
to which that P-code technology had already 
been applied to small computer systems, in 



A/BASIC© 6800 COMPILER 



MICROWARE'S new A/BASIC compiler can break the software bottleneck in your M6800 system. 
A/BASIC compiles BASIC source programs to fast, memory-efficient machine language programs. 
A/BASIC is a cost-effective alternative to slow interpreters or complex assemblers at a price you can afford. 

••NOW AVAILABLE FOR DISK BASED AND CASSETTE SYSTEMS" 

COMPILED PROGRAMS RUN MUCH FASTER THAN INTERPRETERS 

• GENERATES PURE M6800 CODE — NO RUN-TIME PACKAGE REQUIRED 

• PROGRAMMER HAS COMPLETE CONTROL OF MEMORY ALLOCATION 
SUPPORTS LOGICAL, REAL TIME, AND EXTENDED STRING OPERATIONS 

A/BASIC V1.0C 8K CASSETTE-ORIENTED VERSION* on K.C. CASSETTE $50.00 

'(Cassette version requires RT/68MX) 
A/BASIC V1.0D12K DISK EXTENDED (MINIFLOPPY— Specify S.S.B. or SWTPC) $150.00 

BANKAMERICARD • MASTERCHARGE 
We'd like to tell you more about A/BASIC and other advanced M6800 products. 
Write or call today for complete information and our free catalog. 

MICROWVRi: M SYSTEMS CORPORATION 

P.O. BOX 954 • DES MOINES, IOWA 50304 • (515) 265-6121 i ,,,„,„,, k r,. w iv„,i 



Circle 240 on inquiry card. 



August 197SOBYTE Publications Inc 137 




Introducing G/2 Extended 
Basic for Processor Tech- 
nology's SOL computer 
series. The best Basic you 
can buy. 

Developed by Micro- 
soft™ the industry leader in 
microprocessor languages, 
and fully debugged and 
field-proved, this 15.5K pro- 
gram offers such outstanding 
features as string arrays, 
16-digit accuracy, fully 
descriptive error messages, 
automatic line numbering 
and renumbering in selected 
increments, long variable 
names, trace function for 
easy debugging, and many 
other superior capabilities. 

G/2 Extended Basic can 
read tapes written in FFs 5K 
and Extended Basic. This 
allows you to use all your pre- 
viously developed programs. 

Available now on cassette 
tape with full documentation. 
At your dealer, or write for 
information. 



THE REASON 

YOU BOUGHT 
YOUR COMPUTER. 



V Wtm 



mi 



T 



138 August 1978SBYTE Publications Inc 



CRT Corporation 

Consumer Computer Group 

1286 N. Lawrence Station Road 

Sunnyvale, California 94086 

(408) 734-2910 

Circle 149 on inquiry card. 



particular through the work of the people at 
the University of California at San Diego 
(UCSD). The UCSD Pascal project has 
created a nearly machine independent low 
cost operating system which includes Pascal 
as the principal high level language, all the 
usual disk filing system features, support of 
high resolution bit map graphics including 
user definable font storage for the character 
set, an advanced cursor oriented text editor, 
and interactive compilation and editing 
features. All the systems software in this 
package is written in Pascal with the ex- 
ception of the P-code interpreter and asso- 
ciated detail hooks to the hardware. 

The hardware dependent core has already 
been implemented and is readily available 
for LSI-11, 8080, Z-80 and 8085 processors. 
(The cost is only $200 for individual orders, 
with UCSD quoting a $10 royalty per copy 
to manufacturers distributing systems in the 
highest volumes.) At this writing, in the 
small computer arena, three systems are 
available which come with UCSD Pascal 
as a key feature: an LSI-11 system packaged 
by Terak Corp and heavily used at UCSD, 
an 8085 processor in a elegant wood finish 
package with dual floppy drives manu- 
factured by Northwest Microcomputer 
Systems, and a compact Z-80 system with 
dual floppy disks manufactured by Altos 
Computer Systems. Individual users who 
have 8080 floppy disk systems with the 
CP/M operating system and enough main 
memory get a floppy disk to bootstrap 
UCSD Pascal. 

A Serendipitous Result 

The nature of the implementation of 
Pascal compilers, and the UCSD Pascal in 
particular, leads to an important byproduct: 
by simply using the UCSD Pascal compiler 
as the mode of expression of applications 
programs to be published, it is possible to 
provide a compact, machine independent 
representation of programs which greatly 
simplifies the N-representation problem for 
the independent software distribution house. 
The intent of discussing this serendipitous 
result in print at all is to show the way in 
which such independent software houses can 
indeed solve one of the thornier issues and 
provide their customers with programs 
which are compiled once yet will run on any 
one of a number of personal computer 
systems. 

What do we have which already exists in 
a form which can be readily adapted to a 
number of small computers? We have the 
work at UCSD which has produced P-code 
interpreter based systems for LSI-1 1 and the 
family of microprocessors inspired by the 
8080 (8080, 8085, Z-80). By the end of the 



summer of 1978, indications are that UCSD 
will also have bootstrapped the Pascal 
compiler to run on 6502 and 6800 architec- 
tures. Taking this P-code interpreter as the 
input, it is not that difficult to conceive of a 
self-contained software system which will 
run in a 16 K byte or larger personal com- 
puter system and will contain the necessary 
interactive user interfaces to load and run a 
program expressed in the P-code intermediate 
form as output from the Pascal compiler, 
but without the necessity of having the full 
UCSD system available locally to support 
local compilations. 

As a means of demonstrating this con- 
cept, a student at UCSD will spend some 
time this summer creating and characterizing 
a system based on the UCSD P-code inter- 
preter software for two different machines. 
This stand alone system will run in the 
typical current memory sizes of 16 K to 
24 K found in personal computers. The goal 
is to demonstrate a system which can read in 
a P-code object file (possibly in bar code or 
audio format), then execute the object file. 
Issues to be addressed are those of designing 
the details of the program so that its machine 
dependent parts can be relocated easily, and 
so that initial patches for input/output (10) 
conventions can be created without excessive 
mental effort. The machine independent 
part of this stand alone operating system will 
be written in Pascal. 

In principle, expanding this work to a 
greater number of processors, it is possible 
to create a set of Pascal P-code machine 
emulators which can be published once and 
only once for each common machine archi- 
tecture and personal computer manufac- 
turer's configuration, so that this "virtual 
machine" can be used by a whole family of 
independent software vendors as a target 
machine for their wares, rather than requiring 
each software vendor to solve the N-machine 
problem separately. By inexpensively pub- 
lishing the code of the P-machine emulators, 
we hope to help kindle both an interest in 
Pascal as a source language and a chain 
reaction of simplification in the software 
conventions which must be addressed by 
independent software vendors. Only time 
will tell whether or not we accomplish this 
goal. 

A Solution to the N-Machine Problem 

Given the existence of such inexpensive 
standard emulators for the P-machine which 
executes P-code, a number of beautiful 
effects become evident for the distribution 
of application and systems software among a 
large number of users. 

First, since P-code is conducive to use of 
Pascal as a source language, there will be 




Introducing G/2 Standard 
Basic for the SWTPC com- 
puter series. It'll load faster 
and do more than you ever 
thought possible. 

Developed by Micro- 
soft^" the industry leader 
in microprocessor languages, 
and proved for more than 3 
years in MITS applications, 
G/2 Standard Basic is now 
available for the first time 
for use with Southwest Tech- 
nical Products Corporation's 
6800 hardware. 

Four to eight times faster 
than the basic you're now 
using, this interpreter offers 
string arrays, extensive string 
functions, Peek, Poke, Wait 
and Continue, direct execu- 
tion of statements in the 
calculator mode, 10 nested 
machine language sub- 
routines, multidimensional 
arrays and much more. And 
it uses only 7K of memory. 

Available now on cassette 
tape with full documentation 
At your dealer, or write for 
information. 

THE REASON 

YOU BOUGHT 
Y0URC0MPUTER. 




EL GRT Corporation 

Consumer Computer Group 

1286 N. Lawrence Station Road 

Sunnyvale, California 94086 

(408) 734-2910 

Circle 149 on inquiry card. 



August 1978©BYTE Publications Inc 139 



a trend toward use of Pascal to express 
algorithms — a result which is laudable on 
the abstract and practical grounds of Pascal's 
beauty as a self-documenting and structured 
representation of programs. (We already see 
this trend with respect to BYTE articles 
presently queued for publication in the near 
future.) 

Second, the N-machine problem of distri- 
bution is solved by the device of using the 
P-machine emulator for each of N-machines 
as the only machine-specific program, and 
widely publishing the emulators at as low a 
cost as possible. 

Third, the P-code object code form is a 
semantically compact representation which 
in fact minimizes the number of bits neces- 
sary to communicate a program to the 
system which the end user employs. (Yet it 
maps directly into the source code expressed 
in Pascal as part of the documentation of the 
program product in place of flowcharts or 
other devices.) This consideration is impor- 
tant to the relatively slow 10 devices such as 
FM subcarrier broadcasts of programs, 
printed bar code copy of programs, audio 
channel recording of programs, phone 
network transmission of programs, or silicon 
real estate of read only memory parts (as 
inspired by Texas Instruments' SR-59 
"Solid State Software" and hinted at by 
every other semiconductor manufacturer 
interested in distributingcomputers at retail). 

Why Not Publish Machine Readable Source 
Code Instead of an Intermediate Language 
Representation? 

The intention of this argument is to 



provide a way for compiled code to be 
distributed for use with systems which have 
diverse microprocessor architectures and 
detail implementations. A key to publishing 
software inexpensively is the requirement 
that every detail copy of the software pub- 
lished be identical. Further, a certain defini- 
tion of the "lowest common denominator" 
of the set of systems is required. 

One way of publishing which is guaranteed 
to be amenable to a wide variety of detail 
representations is to publish the machine 
readable source code of software. But the 
sheer volume of the code for a well docu- 
mented source listing argues for a way 
which is more economical of the user's time 
and energy. By publishing the machine read- 
able but machine independent intermediate 
language object code compiled from a 
printed source listing (also part of a product), 
the executable representation can be loaded 
into the machine much more quickly; for 
program representations in read only memory 
which are mass produced, an intermediate 
code representation is also favorable because 
of compactness relative to source code. 

To summarize, the intermediate language 
approach provides the benefits of machine 
independence coupled with the compactness 
of representation inherent in the usually 
machine dependent object code for a partic- 
ular architecture. (The negative side of using 
a machine independent representation is of 
course the time overhead of the required 
low level interpreter. But for a well done 
intermediate language interpreter, we would 
expect this penalty could approach a mere 
2:1 versus a typical 20:1 or worse penalty 
for direct interpretation of the source code.)" 



M9900 CPU- 16 BIT MINI for the S-100 BUS with PASCAL 



The M9900 CPU brings the most powerful single- 
chip processor available today— the Tl TMS9900— 
to the S-100 bus and supports it with powerful 
software. Included with the CPU board are Disc 
Operating System, BASIC, Assembler, Linking 
Loader, Text Editor, and Interactive Debug. The 
powerful Pascal compiler is only $150 more. 

Move up to a 16 bit machine and the power of \|«lH 110 ll i I> SuiStOIHS 

Pascal without losing the economy and selection 1CC . . , , * , 

- , ~ * ~~ , i » n^r^r^^ ^ n. , , 16 Saint Jude Road 

of the S-100 bus - move up to the M9900 CPU. Mm Vg||ey< Cg g4g41 

(415) 383-1545 

Kit $550 Assembled $700 Documentation $20 




140 August 1978©BYTE Publications Inc 



Circle 219 on inquiry card. 



Some Notes About Pascal. . . 

As this issue was being prepared, a 
number of interesting bits of information 
became available: 

• Ken Bowles reports that one associate 
of the UCSD Pascal project is using the 
microcomputer based Pascal which the 
project has created in order to write a 
P-code optimizer in Pascal. The 
writing of an optimizer program is not 
in itself particularly noteworthy, but 
the fact that this optimizer is being 
written for Pascal compiler output of a 
Cray-I computer shows ample evidence 
of the relative machine independence 
of Pascal techniques. Here we find the 
LSI-i I based Terak machines at UCSD 
(typically a fully loaded LSI-I I with 
keyboard, bit map graphics, one 
floppy drive) being used to write, 
debug and check out programs for one 
of the world's largest and fastest com- 
puters, the Cray-I. (How fast? Fast 
enough so that light speed propagation 
limits in the wires become a n on trivial 
consideration in the physical design of 
the machine.) Yet the Cray-I uses a 
dialect of Pascal for systems program- 
ming, and even has a FORTRAN 
compiler which uses P-code as its inter- 
mediate language. 

• We note that even the US Defense 
Department likes Pascal as a replace- 
ment for such monstrosities as 
JOVIAL. Two contracts for further 
language design efforts on the "Steel- 
man" phase of the search for a 
"DOD-1 " language definition have just 
been announced, with Intermetrics Inc 
and Honeywell-Bull being finalists in a 
language design competition based on 
preliminary proposals. Much of the 
content of this language definition is 
expected to be inspired by Pascal, even 
if it is not a proper superset of the 
language. 

• From the industrial side, Texas Instru- 
ments Inc has a version of Pascal 
which is supported for the 990 series 
of minicomputers, where "supported" 
means that it is available for use with 
their disk systems, marketing people 
are pushing it at seminars for 990 
system users, and a comprehensive 
manual describing the system is 
available. The 990 series of minicom- 
puters of course includes the micro- 
computer version of the processor, 



which is the TMS-9900, and is one of 
the logical choices for a serious home- 
brewer or designer of a custom micro- 
computer system which must use a fair 
amount of complicated software. The 
990 version of Pascal is probably a 
little too expensive for the individual 
to purchase, but it represents a very 
good investment for a commercial user. 

• Finally, as we went to press with this 
issue in mid-May, a standards confer- 
ence, called by Ken Bowles, was 
scheduled for mid-July at San Diego. 
Attendance was expected from the 
worldwide Pascal community, as well 
as representatives of major industrial 
concerns, with the intent of defining a 
set of "standard" extensions to the 
Pascal language of the Jensen-Wirth 
report. We expect to have some 
comments in a future issue about the 
major points covered in that standards 
conference. (Of course, the reason for 
standards must be properly under- 
stood: a language standard provides a 
reference so that any implementer can 
flag users about how his particular 
system deviates from the standard. 
This philosophy is seen throughout 
computer technology in areas as 
diverse as character sets for terminals 
and FORTRAN IV compilers which 
use the ANSI standard model. A Pascal 
standards consensus already exists in 
the Jensen-Wirth report published by 
Springer- Verlag, and the purpose of 
the conference is to define an exten- 
sions set that covers the superset of 
the original language necessary to 
enhance the practicality of the lan- 
guage in real world situations.) 

Pascal is one of the most exciting devel- 
opments with respect to personal computing 
we have seen in recent years. The small 
computer is finally getting to a point where 
the professionally oriented individual can 
afford (at the price of a typical new auto- 
mobile) a computer with some of the most 
advanced software development character- 
istics possible in today's computers. Just as 
a crank starter can get the engine going on 
an automobile, BASIC and assembly lan- 
guage can indeed be used to program com- 
puters. But if one really wants to use an 
automobile conveniently, an ignition switch 
and electric starter are now considered 
essential. The moral of this little simile is 
that Pascal is the electric starter of the 
computer world. ■ 



August 19780BYTE Publications Inc 141 



Save 20% on all Dynabyte 

Save 15% on all 
IMSAI and Cromemco 

Save at least 1 5% on all 
TDL and North Star 

Contact us for savings on 
Micropolis 




NORTH STAR 
HORIZONS 

ABSOLUTELY BEST PRICES 
AND BEST DELIVERIES 

Horizon 1 Kit, List $1599 $ 1349 

Assembled and tested. List $1899 . . 1599 

Horizon-2 (with 2 drives) Kit, List $1999 1699 
Assembled and tested, List $2349 . . 1939 

TDL XITAN ALPHAS 

— LIMITED TIME SPECIALS — 

Xitan Alpha 1, List $993 $ 839.95 

Xitan Alpha 1.5, List $1172 964.95 

Xitan Alpha 2, List $1601 1309.95 

Xitan Alpha 3, List $1541 1278.95 

Xitan Alpha 4, List $1970 1599.95 

Xitan Alpha 5, List $2041 1703.95 

Xitan Alpha 5-Plus, List $2410 2017.95 




MiniMicroMart 
ALPHA 1 .95 SPECIAL 

Similar to TDL Xitan Alpha 2, Kit . $798 



TDL Z16K STATIC 
MEMORY BOARD 

Assembled and Tested 

Originally $695 

OUR PRICE: $339 



We also stock TAR BELL, MORROW, 
SD SALES, XITEX, and others! 

- SEND FOR FREE CATALOG - 

MiniMicroMart, Inc. 

1618 James Street 

Syracuse, NewYork 13203 

Phone: (315) 422-4467 

142 BYTE August 1978 Circle 250 on inquiry card. 



Continued from page 48 

interested in becoming members should 
write to Patrick at POB 7162, Los 
Angeles CA 90022. 

Association of Small Computer Users 

An association of users and potential 
users of small computers has been 
formed to provide "a new source of 
unbiased, user oriented information" on 
the minicomputer and microcomputer 
market through available publications. 
The membership lee is $25 per year, 
which includes a year's subscription to 
the association's bimonthly newsletter, 
Interactive Computing, a year's sub- 
scription to Minicomputer News, and 
two feature reports from Datapro 
Research Corp, All About Small Business 
Computers and User Ratings of Mini- 
computers and Small Business Com- 
puters. In addition, members will be 
eligible for reduced rates on selected 
publications. Additional information 
can be obtained by writing to the 
Association of Small Computer Users, 
75 Manhattan Dr, Boulder CO 80303. 

G C Computer Group 

G^C-^ has been formed in Mobile 
AL by a group of personal computer 
users. They meet the first Wednesday 



of every odd numbered month. Anyone 
in the Gulf Coast area is invited to join. 
Present membership ranges from novices 
to established professionals, ensuring 
a wide variety of subjects for discussion. 
Members often bring their computers 
to these meetings for demonstrations 
and presentations on their building 
techniques. For the location of the 
next meeting and additional infor- 
mation, call (205) 478-1777. 

6800 Users Group 

A 6800 Users Group has been formed 
for the Dallas and Forth Worth TX area. 
It meets on the third Thursday of each 
month at 7 PM at 1220 Majesty, Dallas 
TX. All parties interested in attending 
are cordially invited to do so. Varied 
topics of interest to users of the 6800 
systems along with tutorials in assembly 
programming are discussed. 

Also of interest to users of 6800 
systems is the group's "Ask the Chips" 
feature, where any questions or com- 
ments concerning the 6800 are presented 
and discussed during the meetings. 
Worldwide users may correspond at the 
address listed below; the group will make 
every attempt to respond with solutions. 

For further information contact 
Charles A Matz, 4114 Avondale, Suite 
2, Dallas TX 75219, or phone evenings 
(214) 522-7130." 




Designing Structured Programs 



Structured programming is an attempt to modernize software develop- 
ment and to reduce the side effects that divert so much programmer 
time from actual programming. The use of structured languages like 
Pascal promotes good programming techniques. 



Chip Weems 

Dept of Computer Science 
Oregon State University 
Corvallis OR 97331 



In the early days of the computer indus- 
try, the most expensive part of owning a 
computer was the machine itself. Of all the 
components in such a machine, the memory 
bank was the most costly because of the 
number of parts it contained. Early compu- 
ter memories were thus small: 16 K bytes 
was considered large and 64 K bytes could 
only be found in supercomputers. All of 
this meant that programs had to take advan- 
tage of what little space was available. 

On the other hand, programs had to be 
written to run as quickly as possible in 
order to make the most efficient use of the 
large computers. Of course these two goals 
almost always contradicted each other, 
which led to the concept of the speed 
versus space tradeoff. Programmers were 
prized for the ability to write tricky, effi- 
cient code which took advantage of special 
idiosyncrasies in the machine. Supercoders 
were in vogue. 

Fortunately, hardware evolved and be- 
came less expensive. Large memories and 
high speed became common features of most 
systems. Suddenly people discovered that 
speed and space were no longer important. 
In fact the roles had reversed and hardware 
had become the least expensive part of 
owning a computer. 

The costliest part of owning a computer 
today is programming it. With the advent 
of less expensive hardware, the emphasis 
has shifted from speed versus space to a new 
tradeoff: programmer cost versus machine 
cost. The new goal is to make the most 
efficient use of a programmer's time, and 



program efficiency has become less impor- 
tant — it's easier to add more hardware. 

There are some important observations 
that should be made concerning modern 
programming. First, the majority of the cost 
involved with a particular program centers 
on maintenance and revision rather than 
initial development. For example, an average 
program may take three working months to 
write but can have a lifetime of up to ten 
years or more, during which dozens of 
changes may be needed. These can easily 
add up to several years of labor. 

It is also interesting to note that the 
largest portion of the time spent in revising a 
program is tied up in analysis of the existing 
code by the revising programmer. This is the 
time needed for the programmer to break 
into a piece of code. 

Even in the development phase, the largest 
portion of time is not usually spent on 
designing or coding, but on debugging. 
The actual programming takes up very little 
of a programmer's time in comparison to all 
of these other program side effects. 

Unfortunately, although hardware has 
evolved rapidly, software techniques have 
not followed suit to the same degree, since 
the first high level languages were intro- 
duced. Witness that two of the most popular 
languages in use today, FORTRAN and 
COBOL, are relics of the late 1950s. 

Structured programming is an attempt 
to modernize software development and to 
reduce the side effects that divert so much 
programmer time from actual programming. 
The main thrust of structured programming 
is to shift the emphasis of the development 
phase to careful design in order to reduce 
debugging time and increase program organ- 
ization. In addition, special coding tech- 
niques make programs easier to revise. The 
use of structured languages, such as Pascal, 
makes programs more reliable by permitting 



August 1978 © BYTE Publications Inc 



143 




3 rove 
ervice to our customers we 
have installed a toll-free 
WATS line in our 
^Peterborough, New 
Hampshire office. 
If you would 
J ike to order a 
^subscription to 1 
^ BYTE, or if 

Toll-free 



: 



BYTE's New 



Subscriber 
W.A.T.S. Line 



(800)258-5485 

We thank you and look 
forward to serving you. 



you have a 
question relat- 
ed to a BYTE 
subscription/ 
you are invite 
to call* 
(800)258-5485 
between 8:30 AM and 
4:30 PM Eastern Time. 
*Applies to calls made 
from within the 
continental US 
only. 



!iUiAg-fl-flXOAflJl-OXfl-gJlJJLiLfiJULfi-a-B-A- ^ad. 



91 7? 



isuuuum 




"PET" 

IMMEDIATE DELIVERY 

Advanced 8K Model 

-only $795 

No computer know-how needed! Uses extended "BASIC". Self- 
contained with its own 9" video display, built-in keyboard, and 
digitally controlled cassette recorder. Complete with 14K operat- 
ing system and 8K memory built-in (expandable to 32K). 

APPLE II 
In stock from $970 

Apple II is a completely contained computer system, with BASIC 
in ROM, full ASCII keyboard in a lightweight molded carrying 
case. Expandable to 48K. 

Apple II, the personal computer with color! 

IMSAI VDP 80 — desk top business system with 32K, II dual den- 
sity floppy disk and CRT. List - $7,000 
Limited time only $5,295 



PERIPHERALS 


PERIPHERALS 


For PET 


For APPLE 


PET 2020 Impact Printer - $595 


Expandor Printer - $425 


32K Memory Expansion -$595 


Centronics 799 


Serial Interfaces from $169 


Printer $995 
Apple II Disk $495 



Plus hundreds of software programs too numerous to list! 

THE COMPUTER FACTOR* 

790 Madison Ave. (cor. 67th St.) 

New York, NY 10021 212-PET-2001 
Open 10-6 pm Tuesday - Saturday 212-249-1666 



compilers to build more self-checks into the 
programs they generate. 

This sounds like salvation to companies 
which have to hire expensive programmers 
and analysts, but what does this extra effort 
do for the personal computer enthusiast? 
Consider that the development of the 
personal computing industry has paralleled 
that of the entire computer industry, but in 
miniature. Early personal computers were 
small and speed versus space was the most 
important factor. As costs came down, 
however, larger memories and higher speeds 
in processors became common. Programming 
is a spare time operation for many personal 
computer experimenters; structured pro- 
gramming can help to optimize the pro- 
grammer's use of this valuable commodity. 
The difficulty comes in changing old habits 
and using self-discipline. 

There is an anomaly present in the per- 
sonal computing industry: fourth genera- 
tion hardware is the rule rather than the 
exception, but experimenters are still using 
software, such as BASIC and line oriented 
editors, which is based on 1 5 year old designs 
left over from the second generation of com- 
puter hardware. 

We have a chance to learn from the 
mistakes of the mainline computer industry, 
where people have been digging their way out 
of the second generation for several years. 
We have a fresh, new chance to do things 
correctly. 

Structured Techniques 

Structured programming is a collection 
of coding and design techniques that guide 
programmer efforts into the production of 
organized, well formed, reliable programs. 
Unfortunately, this miracle can only come 
to pass if the techniques are used properly. 

Structured techniques are often referred 
to as being top-down in nature. This classi- 
fication is really misleading since, in actual 
practice, both top-down and bottom-up 
methods are used. Top-down techniques 
refer to methods which begin with the 
overall problem to be programmed and, 
through successive steps, break it down into 
smaller, more workable subproblems. 
Bottom-up methods take the opposite 
approach by starting at the detail level 
and concatenating small units to form 
larger units, repeating the process until the 
solution for the entire problem is formed. 
This is the building block approach. 

Program development is broken into two 
phases by structured techniques: design and 
implementation. During the design phase, 
which is the emphasized portion, the 
methods used are primarily top-down in 



144 August 19786BYTE Publications Inc 



Circle 71 on inquiry card. 



nature. The implementation phase, however, 
uses mostly the bottom-up approach. 

Analysis of any problem is most logically 
done in a top-down manner. No one would 
try to solve a word problem in algebra by 
taking a group of mathematical symbols 
and trying to fit them together in the hope 
that an appropriate formula will appear. 
Such a formula would probably solve only 
a few special cases or, if it were general, 
would probably contain several extraneous 
terms. Even so, this is exactly what happens 
when people write programs in a bottom-up 
style, starting out by writing code and not 
considering the overall design until later. 

Our first rule in structured programming 
thus is: sit down at the beginning and analyze 
the problem in a top-down manner. Break 
it down into smaller portions so that the 
overall organization remains clearly visible. 

This is the guiding philosophy of the 
entire design process, the end result of which 
is a properly coded program. The major 
techniques used here are stepwise refine- 
ment and stepwise decomposition. It should 
also be noted that this process is not purely 
top-down in actual use. The experienced 
programmer knows what is possible and 
what is not. Such a programmer employs a 
form of look-ahead along with the top-down 
techniques in order to avoid impossible 
designs. Possible coding schemes are con- 
stantly being considered while the design 
is under development. Properly used, this 
technique can be a valuable evaluation tool 
and can greatly speed up the design process. 
The important point is that such a pro- 
grammer should not get so involved in 
coding that the top-down approach is com- 
pletely abandoned. 

Implementation is best done through 
bottom-up techniques. Going back to the 
algebra problem, we can see that, once we 
have a well written formula, it would be 
illogical to try to plug in all of the numbers 
and do all the computations at once. The 
best approach is to start with single com- 
putations, verifying each one, and build on 
them until a solution is obtained. 

Once the design is completed, the inde- 
pendent, bottom level program modules are 
implemented and tested first. Higher level 
routines are built using these subroutines 
until the program is eventually constructed 
and the final verification takes place. 

Surprisingly, careful design and imple- 
mentation in this form does not take consid- 
erably more time than program development 
using the older approaches. Some restraint 
on the part of the programmer is needed, 
but once the results are seen, it's hard to 
imagine why anyone would want to con- 
tinue using the old, unorganized methods. 



Circle 79 on inquiry card. 
BUSINESS PROGRAMS FOR 

TRS-80 

ON CASSETTE, READY TO RUN 



FOR LEVEL-I.4K: 

6-FUNCnON CALCULATOR: One punch of CLOAD transforms your TRS-80 into a 
powerful printing calculator. Runs (orals on 3 columns (displayed) simultaneously. Takes 
square root, etc, at the touch of a key. Data can be rotated from column to column to 
implement a Grand Total function, or for storage. Scrolls automatically $14.95 

LOAN PAYMENT COMPUTATION: (Installment and Mortgage Loans) Analyzes principle 
and interest allocation Computes payments required to amortize, etc. This is a full 
professional tool, for use by escrow officers, loan officers, etc $14.95 

CASH FLOW PREDICTION: Monthly long and short term projections from past 
history S14.95 

FOR LEVEL-II, 4K: 

DECIMAL-OCTAL-HEX CONVERSIONS AND ARITHMETIC: Go from any base to any 
other. 4- Function Calculator in Octal and HEX $1 7.95 

LOAN PAYMENT COMPUTATION FOR LEVEL-II: Same as above but with the 
number crunching capability of Level- 1 1 $17.95 

CASH FLOW PREDICTION FOR LEVEL-II: Same as above but handles larger 
amounts $1 7.95 

LEVEL! PROGRAMMER REFERENCE CARD SI. 25 

ROM ERROR CHECK TAPE, LEVEL-I S3. 95 

Write for catalog of full Business Programs for the TRS-80. Ours are serious, practical, easy 

to use. 

CUSTOM SOFTWARE: We will write, patch, link or modify programs to your 

specifications. 

All programs accompanied by detailed, clearly-written instructions. 

CONTRACT SERVICES ASSOCIATES 

1846 W. Broadway Anaheim, CA 92804 (714)635^055 

21) YliARS 01 PROii-SSIONAL SliRVKi- 



5 



1976/1977 



KITE 



Cover Price * 
plus postage 
and handling 



Back Issues for sale 



III 



The following i~;-ue. svailable: 

'76 77 



July March 

August May 

October June 

November July 

December August 

September 

October i 

November i 

December I 

= * Cover price for all issues thru August 1977 j 

3 is $1.50 plus $.25 postage and handling ; 

= ($3.50 total foreign). September '77 thru j 

a December '77 issues are $2.00 plus $.50 i 

j postage and handling ($4.00 total foreign). 

fniiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimiiiiMiiiiiE 

Send requests to: BYTE Magazine 
70 Main St 

Peterborough NH 03458 
Attn: Back Issues 



Augusl 1978 ©BYTE Publications Inc 



145 



Circle 95 on inquiry card. 




CP/M™ 

LOW-COST 

MICROCOMPUTER 

SOFTWARE 



CP/M™ OPERATING SYSTEM: 

• Includes Editor, Assembler, Debugger and Utilities. 

• For 8080, Z80, or Intel MDS. 

• For IBM-compatible floppy discs. 

• $100-Diskette and Documentation. 

• S25-Documentation (Set of 6 manuals) only. 

MAC™ MACRO ASSEMBLER: 

• Compatible with new Intel macro standard. 

• Complete guide to macro applications. 

• $90-Diskette and Manual. 

SID™ SYMBOLIC DEBUGGER: 

• Symbolic memory reference. 

• Built-in assembler/disassembler. 

• $75-Diskette and Manual. 

TEX™ TEXT FORMATTER: 

• Powerful text formatting capabilities. 

• Text prepared using CP/M Editor. 

• $75 Diskette and Manual. 

1 D.G.TflL RESEARCH 

P.O. Box 579 • Pacific Grove, California 93950 
(408) 649-3896 



We speak your 
language 

And we're giving you what you want. 

• a comprehensive product line. Hardware, assembled or 
kits, and software from major manufacturers. Plus books and 
current literature. Financing available. 

• a trained, enthusiastic staff. We'll help you choose or 
design the system that's right for you. No high pressure here. 

• service when you need it. We won't sell you something 
we can't keep running.^^^ 

• a brand new facility 
in Pennsylvania. 
We'll be able to 
serve our South Jersey- 
Pennsylvania customers 
more efficiently now. 

• a bigger, better New 
Jersey store. We've 
enlarged our showroom 
in Iseun. Now there are 
more displays you can 
try out. There's more 
room to stock the 
products you need. 




E3 



The Microcomputer People. M 

Computer Mart of New Jersey 
Computer Mart of Pennsylvania 

Pennsylvania Store 

550 DeKalb Pike 

King of Prussia, PA 19406 

215-265-2580 

Tue.-Thur. 11:00-9:00 



New Jersey Store 

501 Route 27 
Iselin, NJ 08830 
201-283-0600 
Tue.-Sat. 10:00-6:00 
Tue. & Thur. til 9:00 Fri. & Sat. 10:00-6:00 

(our only locations) 



Now that we have a feeling for what 
structured programming is, let's take a close 
look at some of the techniques mentioned 
earlier. 

Stepwise refinement is a top-down 
approach to program syntax. The concept 
of refinement refers to the language used to 
describe the solution being programmed. We 
start with some very general statements 
about what the program or routine is sup- 
posed to do, then work down through 
several levels of specification using more 
detailed language at each new level as shown 
in figure 1 . 

The end result of refinement is a coded 
version of the program or module. In order 
to apply refinement, it is necessary to have 
previously specified (at least in part) how 
the program is to be broken down func- 
tionally. Another technique, called stepwise 
decomposition, is responsible for deter- 
mining how the program is split up. It will 
be examined later in this article. In general, 
refinement takes place simultaneously with 
decomposition, but is usually one or two 
steps behind with regard to level. 

Completely different from the end result 
is the goal of stepwise refinement, which is 
to reduce the complexity of program devel- 
opment by organizing it into a sequence of 
manageable steps through the establishment 
of stable levels of complexity during the 
design. Once each new plateau of com- 
plexity is reached, work can begin on 
developing the next plateau. This is similar 
to the way a mountain climber scales a peak: 
a series of base camps must be established, 
each one providing a jumping off point for 
the next day's climb and, in the event of 
failure, a safe haven to return to for the 
night. No one would consider climbing 
Everest in one unbroken effort. There's 
simply too much mountain there to do it all 
at once. 

Amazingly enough, many programmers 
still attack mountainous programs with a 
single effort approach. But there's simply 



goal 



SPECIFIC6TI0N 



PSEUDOCODE 



CODE 



Figure 1: Stepwise refinement of problem. 
We begin with the high level goal statement, 
which contains few details. As we step down 
through each lower level, more details are 
added until, at the fourth level, we have a 
coded program or module. 



1 46 August 1978 © BYTE Publications Inc 



Circle 76 on inquiry card. 



too much information in a large program; 
the human mind can't absorb it all at once. 
Even though the resulting program may run, 
its own author probably couldn't explain the 
whole thing and certainly would not be able 
to guarantee it to be error free. 

How many levels are needed in the devel- 
opment of a program? This depends on the 
size and complexity of the program, but in 
general a minimum of four levels is required. 
These levels are the goal, specification, 
pseudocode and code levels. 

When you decide to write a program, the 
first thing you should do is write down the 
goal you have in mind for that program. If 
you can't write the goal in words, you prob- 
ably don't have a clear enough picture of 
what you want to do in order to write a 
program. 

Once you've written the goal, step back 
and take an objective view. Is it too broad, 
too grandiose, too narrow, too simple? 
Writing, "This program will be used to bal- 
ance my checkbook," is one thing, but, 
"A program to keep track of cash flow 
through the entire household," is a com- 
pletely different matter. The first could be 
written for a programmable calculator, the 
second involves establishing a complete data 
base system. 

A great deal of frustration and disap- 
pointment could be saved just by writing out 
the goal and examining it. For a roulette 
game, a well written goal might read as 
follows. 

"This program will simulate the game of 
roulette as played by Monte Carlo rules. It 
will permit up to five players to bet at one 
time and will use a free form input scheme 
to simplify the betting process." 

In the first sentence, the main goal has 
been specified and some secondary points 
have been put down. Note that the goal is 
not too specific, since the details are sup- 
posed to be held off until the specification 
level. As stated, this program is reasonably 
difficult, but not impossible. 

After a satisfactory goal is set, then 
comes the specification, which is broken 
into three parts: input, output, and strategy. 
Most good programmers have at least once 
made a statement something like, "If you've 
got a complete description of what comes 
into and what goes out of a program, the 
rest is just adding what runs in between." 

Writing a program is, regrettably, not that 
simple, but it would be much more difficult 
to write it without knowledge of just how 
the input data will look or what the output 
is supposed to be. The specification level 
provides this and permits us to jot down 
some rough ideas about how the processing 
will take place. Table 1 is one possible 



example for the roulette program. 

Obviously, this is not a complete descrip- 
tion of the IO, but it is reasonably good. If 
we were actually writing this program, the 
specification would be more detailed and 
several examples would be included. Similar 
items that can appear in the IO description 
are card layout forms, disk file formats, 
record descriptions and so on. If this were a 
subroutine, our IO specifications would also 
describe the parameters passed to and from 
the calling routine. 

The strategy is important here, since this 
is really the second level of the process 
refinement. Note that there are no system or 
language dependent statements in the 
strategy. We should be able to take any task 
from the specification level of a program 
description and implement it on any system 
(with enough resources) without having to 
change the way we have written it. 

Once again, step back and examine what 
has been done. Is the strategy too detailed, 
is there enough detail, is it dependent on 
special system or language features, is it too 
complex? The last item is important: if the 
answer is yes, the problem has not been 
properly decomposed. We must go back to 
the decomposition and reexamine how we 



Input: 

Initial number of players: integer between one and five inclusive. 
Player names: string truncated at 15 characters. 
Yes/no answers: strings truncated to one character. 

Bets: string up to 72 characters long of form: integer number bet value on bet 
keywords. All extraneous words and symbols are ignored. Instead of a bet, the 
special keywords quit and pass may be input. 
Bet keywords: numbers separated by commas. 
12H, 12M, 12L (dozens) 
12A, 12B, 12C (columns) 
low, high (halfs) 

odd, even 
red, black 

Output: 

Number of players question. 

Players name requests. 

Instructions needed question. 

Instructions. 

Bet requests. 

Results and winnings statements. 

Bet error messages. 

Goodbye message. 

Strategy: 

After the startup sequence, go into a loop to input the bets. Process each bet by 
scanning through the string looking for quit, pass, or digit. Set the quit or pass 
flags if either is found and go get the next bet. If a digit, continue picking up digits 
and converting to decimal until on is seen, then scan for keywords. Once the com- 
plete bet is processed, check for validity. Either accept the bet or print an error 
message. Select the random winning number, determine who won or lost and print 
the results, checking quit and pass flags for special action. Restart input loop if any 
players remain, else stop. 

Table I : This is the rough sketch of the roulette game which will be used to 
develop the program. The rough sketch should define what the input and 
output of the program are going to be and the general workings of the pro- 
gram. It should be very general and give an overall view of the project. 



August 1978 © BYTE Publications Inc 



147 



have divided the processing. (Better to back- 
track at this stage than after we have gone 
further and found the problems to be 
unmanageable.) 

I n the next phase of refinement we try to 
get even more specific. On large programs, 
which may need more than four levels, the 
extra levels may appear at this point. Any 
program that requires multiple pseudocode 
levels has probably been improperly decom- 
posed. A well formed program seldom needs 



Begin program. 

Ask how many players. 

For as many players as there are, 

Get each player's name. 
Ask if instructions are needed. 
If yes, output the instructions. 
While there are still any players left, 
For as many players as there are. 

Repeat until a valid bet is obtained: 
Get the player's bet. 
Scan the bet. 
Check bet for validity. 
Determine the winning number. 
For as many players as there are, 
If player quit, process the quit. 
If player passed, process the pass. 
If player bet, 

Determine whether player won or lost. 
Process this accordingly. 
End program. 



Listing I : Pseudocode for roulette program. This level of design is used to 
roughly determine what the program should be doing. It should not con- 
cern itself with the low level aspects of the program. 



begin ("program*) 

askhowmany (players); 

for player : = 1 to (*as many*) players (*as there are*) do 

getname ((* of*) player, ("into") playerlist); 
askif (yes) ("instructions are needed*); 
if yes then printinstructions; 
p/ayersleft : = true; 

while (*there are still any*) playersleft do 
begin (*betting*) 

for player : = 1 to (*as many*) players ("are there are") do 
repeat 

getbet (("of") player, ("in") playerlist); 
scanbet (("of") player, ("in") playerlist); 
checkbet ((*of*) player, ("in*) playerlist, 
(*to see if*) valid); 
until valid (*bet is obtained*); 
determine (winningnumber); 

for player : = 1 to ("as many*) players ("as there are") do 
begin ("processing results*) 
if quit (("by") player, (*of*) playerlist) 

then processquit (("by") player, (*of *) playerlist, 
('updating*) players, ("and*) playersleft); 
if pass (( "by *) player, ("of*) playerlist) 

then processpass ( ( *by * ) player, ( *of * ) playerlist); 
if bet ((*by*) player, (*of*) playerlist) 

then processbet ((*by*) player, (*of*) playerlist, 
("using*) winningnumber) 
end ("processing results*) 
end ("betting") 
end. ("program*) 

Note: The delimiters (*and*) are used in this listing to indicate comments. Although 
the Pascal defined symbols are { and } , most output devices do not have these symbols 
available. Therefore the parentheses and asterisks are substituted. 

Listing 2: Pascal program for the roulette game. This is the main program 
which calls many other subprograms to perform the low level logic. Notice 
the similarity between this program and the pseudocode of listing 7. 



more than the usual four levels of refine- 
ment. At this level we may add some system 
dependent features but we should still try to 
avoid language dependencies. Our pseudo- 
code description should thus use a wide 
range of constructs freely, since we can al- 
ways break these down into whatever con- 
structs our chosen language actually has. 
Using a wide variety of powerful constructs 
permits us to think and design more freely, 
free of the worries of particular language 
forms. 

Many people use a form of ALGOL to 
write their pseudocode, because the block 
structure of ALGOL lends itself nicely to 
structured pseudocoding. At limes, this 
ALGOL type language looks more like a 
version of Pascal, especially if the program- 
mer is accustomed to Pascal. But the dif- 
ferences are minor because the two lan- 
guages are similar and a good pseudocode!" 
tries to eliminate language dependencies 
anyway. 

The pseudocode for our roulette game 
looks something like listing 1. This is still 
at a fairly high level, but is much closer to 
being a program than the strategy was. The 
pseudocode shown uses indentation to indi- 
cate blocks rather than begin and end pairs 
as in Pascal. This provides a graphical repre- 
sentation of the structure of the program. 
When indented properly, good pseudocode 
can be used in place of flowcharts, and is 
often more easily understood. 

A good rule to follow when writing 
pseudocode is to make it understandable to 
almost anyone, including nonprogrammers. 
If you can convince someone that they're 
going to run a roulette table for people bet- 
ting via Teletype, they will probably have no 
difficulty in understanding the roulette pro- 
gram pseudocode. This is an important test. 
If another person can successfully interpret 
your pseudocode and, using it, play the part 
of the computer without running into pro- 
blems (bugs), then it is well written. 

When the pseudocode for a module is 
completed, it is a relatively simple matter to 
flesh it out by adding the right words and 
proper punctuation for whatever language is 
being used. 

Converting our pseudocode to Pascal, for 
example, would produce something like 
listing 2. 

This is indeed a high level Pascal program. 
It takes advantage of the ways in which 
Pascal permits procedures, functions, 
Booleans and comments to be used, in order 
to produce actual code that is not much 
lower than pseudocode. Most of the work 
done in this program is by procedures and 
functions defined elsewhere. This is a sign of 
good decomposition. 



148 August 19786BYTE Publications Inc 



Circle 265 on inquiry card. 



A main program should very seldom have 
to exceed more than one or two pages in 
length. If it does, it is probably too complex, 
and more of its operations should be con- 
solidated into subroutines. Breaking pro- 
grams up into manageable pieces is the idea 
behind stepwise decomposition. As I men- 
tioned earlier, decomposition is the other 
half of the design phase. Now that we've 
concluded our development of stepwise 
refinement, let's take a closer look at 
decomposition. 

Decomposition 

Stepwise decomposition is a top-down 
approach to program semantics. Using 
decomposition, we examine the meaning of 
a program segment to determine its function 
with regard to the whole program. Our pur- 
pose in doing this is to determine the com- 
plexity of the function in order to see if it 
should be further decomposed. Decompo- 
sition refers to the breaking up of program 
functions to reduce their complexity and 
increase manageability. 

The end result of stepwise decomposition 
is that all program functions will be reduced 
to a set of simple, isolated subroutines as 
shown in figure 2. Like refinement, how- 
ever, the goal of decomposition is to provide 
a sequence of levels, like mountaineering 
base camps, which reduce the design process 
from a single, giant leap to a series of short, 
easy steps. Unlike refinement, there is no 
usual number of levels required to fully de- 
compose a program. The size and complex- 
ity alone determine how many levels of 
breakdown will be needed for a program, be 
it two or 20. The reason for this is apparent 
if we note that refinement follows a few 
steps behind decomposition. With refine- 
ment we have the advantage that we will 



LEVEL I 



LEVEL 3 



LEVEL 5 



Figure 2: Stepwise decomposition of prob- 
lem. We begin with the entire problem, 
breaking it into smaller subproblems. This 
process is repeated through as many levels as 
needed, until we are satisfied that all of the 
resulting modules are as independent and 
primitive as necessary. Note that not every 
module has to be decomposed to the same 
depth. 




Need Hard Copy? 

TRY OUR SOFT PRICES 
$425 

Complete standalone 40 column impact dot matrix printer with a 64 
character ASCII set. Includes power supply, casework and interface 
electronics for connection to a mini'micro processor parallel port 
Serial interface versions for RS232 'current loop applications start at 
S575 in sinqle quantity 



SEND FOR FREE LITERATURE 




Box 22101 

Sail Lake City, Utah 84122 

(801) 364-2411 



The 
original 



people 



Hands on microprocessor short course 

with FREE take home microcomputer 

included in the $499 tuition. 



Sep. 25, 26, 27, 28, 29 Lafayette, IN 

Oct. 2, 3, 4, 5, 6 Washington, DC 

Oct. 23, 24, 25, 26, 27 Philadelphia, PA 

Nov. 13, 14, 15, 16, 17 Palo Alto, CA 

Dec. 11, 12, 13, 14, 15 Albuquerque, NM 

Jan. 15, 16, 17, 18, 19 St. Petersburg, FL 

Advanced Programming Course: 

Nov. 27, 28, 29, 30, Dec. 1 Lafayette, IN 

Learn microprocessors first hand 
from the original hands on people. 

For more information call Jerilyn Williams, 

(317) 742-6802 or write Wintek Corp., 

902 North 9th Street, Lafayette, Indiana 47904. 



wivn i: 



6800 Hardware/Software 
Custom Hardware/Software 
In-house short courses 



Circle 393 on inquiry card. 



August 19786BYTE Publications Inc 149 




Figure 3: Strongly connected modules. The 
broad communication paths defeat the 
purpose of separating functions into 
modules. In addition, this permits errors 
caused by program changes to propagate 
throughout the entire program. 



always be working on simple, decom- 
posed program modules which should never 
exceed a certain level of complexity. Decom- 
position, on the other hand, is used for 
breaking new trails and is applied to prob- 
lems with an arbitrary range of complexity. 

Since there are no fixed decomposition 
levels, we must have some rules that specify 
under what conditions a new level should be 
created. Because programming is not an 
exact science, our rules are not like laws that 
must be obeyed, but are rather heuristics or 
rules of thumb which guide us as we work 
through a design. 

Before we can set up these rules of 
thumb, we must consider two important 
characteristics of program modules on which 
they will be based. The first is the connec- 
tivity of a module and the second is its func- 
tional relationship. 

Connectivity refers to the number of 
channels of communication between a 
module and the rest of the program. A 
module which has many links to other parts 
of the program is said to have high connec- 
tivity, while one with few links has a low 
degree of connectivity. 

The level of internal functional relation- 
ship is a description of how the processes in 
a module relate to each other. These proc- 
esses are said to be highly related if they are 
all involved in providing the overall function 
of the module. A group of processes which 
do not contribute to the module's function 
is said to have a low functional relationship 
with regard to the module. The overall level 
of relationship throughout the module is 
called its cohesiveness. 



Now that the terms and definition have 
been set forth, let's take a closer look at 
these two characteristics and see how they 
relate to structured programming. 

Programs whose modules are connected 
by large numbers of communications paths 
are obviously more complex than those with 
only a small number of intermodule links. 
Modules which depend heavily on other 
modules, as in figure 3, are difficult to work 
with because understanding them also 
requires a complete understanding of all the 
modules upon which they depend or which 
depend upon them. This can develop into a 
chain reaction, requiring the programmer to 
design the entire program at the detail level- 
often an impossible task. 

Another negative result of high connec- 
tivity is that a change in any module can 
cause effects which ripple throughout the 
entire program. The numerous, broad com- 
munication channels do nothing to restrict 
the propagation of errors from one module 
to another. Since the goal of structured pro- 
gramming is to reduce complexity and 
errors, our design efforts should strive to 
reduce the number of intermodule connec- 
tions, as in figure 4. 

Modules are usually of two sorts: sub- 
routines (procedures and functions), or 
blocks of code within a program. They can 
communicate through shared variables, com- 
mon data areas, formal parameters, and even 
by flow of control. (Shared variables and 
common data areas produce strongly con- 
nected programs as in figure 5.) The in- 
formation communicated via these paths 
can be divided into two types: that which 
affects data, and that which affects flow of 




Figure 4: Weakly connected modules. 
Narrow lines of communication enhance 
the black box qualities of modules. They 
also serve to Isolate the effects of errors to 
small sections of the program. 



1 50 August 1978 © BYTE Publications Inc 




Figure 5: The effect of common or shared 
data. Each module is strongly connected to 
every other module which has access to the 
data, to the point that there is very little 
isolation. Any action by any module can 
thus have serious effects on the rest of the 
modules. Note the similarity to strongly 
connected modules. 



of how the receiving module works. Thus, 
pure data communications are preferable. 

In addition, data can be further divided 
into two types: broad scope and narrow 
scope data. Broad scope includes such things 
as global variables, common data areas, and 
shared data, as represented by figure 5. 
Narrow scope data is characterized by formal 
parameters passing between subroutines, 
which produce less complex connections 
since these are very specific. In contrast, 
a change made to one of the broad scope 
forms can affect all modules connected to 
it, possibly without their knowing that this 
has occurred. Broad scope data also adds 
the problem of determining which module 
is permitted to modify the common data. 
Is unanimous consent by all connected 
modules required, or do we run our pro- 
gram under a democracy? For these and 
other reasons, broad scope data can be 
problematical. 

Let's summarize what our most desirable 
configuration would be. All modules would 
communicate by passing minimal amounts 
of simple data through well defined formal 



control. The paths themselves can be of two 
forms: those which connect to a module, 
and those which connect to something inside 
a module. The various means of communica- 
tion are illustrated in figure 6. 

The level of connectivity for a path is 
determined by the complexity of the infor- 
mation communicated, the type of informa- 
tion, and the type of path. Connectivity 
would be almost impossible to evaluate, 
quantitatively, but, qualitatively, we can 
see that some types of connection are 
worse or better than others. 

To be specific, simple connections are 
better than complex ones, paths which talk 
to modules are better than those which 
talk directly to internal processes, and 
communications that affect data are pref- 
erable to those which affect flow of con- 
trol. By far the worst form of connection 
is that in which one module modifies the 
internal code of another, since this re- 
quires that the modifying module "know" 
how the subject module works at the machine 
level. Thus, any programming changes done 
to the subject would also require changes 
to the modifier. 

Externally connected paths are rated 
higher than internally connected ones, since 
at all times the entire module should be able 
to supervise any communications. Internal 
connection bypasses this and makes it im- 
possible for the module to be sure of its 
internal status at any time. Communications 
that affect the flow of control require that 
the sending module have some knowledge 




Figure 6: Types of communication. Figure 
(a) shows simple external connection, which 
is the most desirable. In (b) we have simple 
internal connection. Figure (c) is complex 
communication. With (d) we see communi- 
cation in which one module modifies the 
internal workings of another. Lastly, figure 
(e) shows the worst type of communication: 
a complex combination of all the other 
forms. 



August 1978©BYTE Publications Inc 151 



parameters; in other words, minimal con- 
nectivity. Obviously this requires that the 
modules be broken down so that each 
provides one simple, dedicated function. 
Now we're ready for a further look at 
cohesiveness. 

The relationships, which processes inter- 
nal to a module can have with respect to 
the module and with each other, have been 
broken down into six classes. These are 
listed in order of weakest relationship to 
strongest. 

• Coincidental. 

• Logical. 
Temporal (or time-wise). 
Communicational. 
Sequential. 
Functional. 

Wc can see from our discussion of con- 
nectivity that it is highly desirable to com- 
pose modules such that all of the internal 
processes are directly related to the specific 
function of the module. Such processes are 
functionally related, as illustrated in 
figure 7. 





























W 






Q 
































P 













Z 
















H 














L 































Figure 8: Classes of relations. Coincidental 
relation is shown here, in which separate 
processes are unrelated except that they 
reside in the same module. 




M 








Ml 


M2 


M3 


M4 


M5 



Figure 7: Classes of relations. Fhe strongest 
form of cohesiveness is the functional re- 
lation wherein every process is integrally 
involved in providing the overall function 
of the module. 



With regard to cohesiveness, then, the 
higher the level the better. We should attempt 
to design modules such that their internal 
processes are as strongly related as possible. 
Now let's examine the weaker classes of 
relationships. 

Coinciclcntally related processes, shown 
in figure 8, are totally unrelated except for 
the fact that they reside in the same module. 
This is the weakest form of relation, and any 
module composed in this way should be 
broken apart into separate processes. 

Logically related processes, shown in 
figure 9, have no real relation to each 
other except that they perform similar func- 
tions and thus get grouped together to form 
a module. Once again, this should be broken 
down into smaller modules. 

Processes which are temporally related, 



Figure 9: Classes of relations. Shown here is 
logical relation, in which processes are 
grouped together because they have similar 
functions. 




Figure 10: Classes of relations. In a temporal 
(time) relation the similar processes can 
execute in any order, effectively in parallel. 



as in figure 10, are almost identical to 
those which are logically related except that, 
in addition, they can all be executed at one 
time. A common example is the initializa- 
tion routine found in many programs. Much 
of what is considered to be initialization 
by many people could actually be done 
much later in the program and could be 
distributed among the modules. 

Processes related by communication are 
those which have been grouped into a single 
module because they share data in some 
way, as seen in figure 11. This is a stronger 



152 August 1 978 @ BYTE Publications Inc 



relationship, but consideration should still 
be given to breaking up such a module. A 
common solution to this problem is a master 
module which holds the data and formally 
passes it to each of the submodules as 
needed. 




Figure 7 7: Classes of relations. Processes 
can communicate with each other directly or 
through common data in a communication 
relation. 



Sequentially related processes, figure 12, 
are those which execute in sequence, each 
one creating data to be used by the next. 
Obviously such a module can be split apart 
and the resulting submodules called in 
sequence with the data passed as param- 
eters. This has the added advantage of 
making these elementary processes directly 
accessible to the rest of the program. 











\ 




A 


^r^ 






I ) 




B 








1 j 


r 


C 


A^ 











Figure 12: Classes of relations. A sequential 
relation wherein the first process generates 
data required for input by the second, and 
so on. 



We can again summarize what our ideal 
module will look like. It will be minimally 
connected to the rest of the program and 
will have a high degree of internal cohesive- 
ness. This means that each of our modules 
should perform one specific function and 
should not contain any extraneous proc- 
esses. In addition, they should communicate 
solely via simple, well defined, narrow 
interfaces — preferably by passing formal 



Art -by-Computer tm is herei 




Fi I. 



Fi le 3 



B I ack-on-wh i te, 9 3/4H by 12 3/4W reproductions 
of computer generated designs. See Jan 78 Byte 
or phone or write for a brochure. 
Set of 12: $20.00, singles $2.00 each. Minimum 
order: 2 prints. Orders less then $10.00 and 
al I orders from outside continental U.S. add 
$2.00 postage and hand I i ng . Payment must be 
in U.S. dollars. California residents add 6% 
sales tax. Send check or money order to: 



Le I and C. Sheppard 
PO Box 60051, Dept. B 
Sunnyvale, California 94086. 



Also available at selected retaj I outlets. 



LCS, 1978. 



Software 



Games • CRAPS (Las Vegas style) $6.00 
MULTIPLE LUNAR LANDER $8.00 
SLOT MACHINE $6.00 
GAME PACKAGE: Russian Roulette, Mad 
Scientist, and ABM $8.00 

Graphics .. PiCTURE MAKER with AMPa ANNY $12.00 
GRAPHICS PACKAGE I: Laser Beam, Space 
Shuttle, and Blast Off $10.00 
GRAPHICS PACKAGE II: Rain in Greece, Flea, 
Textwriter, Random Walk $10.00 

Scientific • FOURIER FIT: Does curve fitting $15.00 
Systems • RANDOM NUMBER GENERATOR TEST $5.00 
HEX MEMORY LOADER $10.00 
MEMORY DUMP PROGRAM $10.00 
MEMORY SEARCH $5.00 

All Programs Written in BASIC 

Complete Easy to Read Documentation 

Programs Completely Tested 

SOFTWARE RECORDS 

P.O. BOX 8401 -B 
UNIVERSAL CITY, CA 91608 

(cal residents add 6% sales tax) 



Circle 330 on inquiry card. 



Augusc 1978® BYTE Publications Inc 



153 



parameters. The result is a program com- 
posed of plug-in modules that act like black 
boxes. Such a program is relatively easy 
to change, because each function has been 
carefully isolated. Modification then becomes 
primarily a matter of module plugging, and 
the effects of any new bugs will be con- 
fined to a relatively small portion of the 
program. Recall that easy program modifi- 
cation and the reduction of side effects 
were two of the major tasks we were 
trying to accomplish through structured 
programming. 

Finally, we can list those decomposition 
heuristics which were mentioned earlier 
and many of which should be apparent 
by now. 

One good technique for determining 
whether a module is sufficiently cohesive 
is to write a sentence describing its purpose. 
If the sentence has to be a compound 
sentence, the module is probably doing 
more than one thing. Usually this will 
be obvious just by looking at the sentence. 
Incidentally, this can become the goal state- 
ment for use in the refinement process. 

Carefully examine modules which result 
in fewer than five or more than 100 source 
statements of code. This often indicates 
improper decomposition. 

Avoid initialization modules wherever 
possible. These reduce the black box qualities 
of many modules. 









PROJECTILE 
HEIGHT 




















I 








2 






3 






4 


GET 
DATA 




MAXI MUM 

HEIGHT 




PUT 
DATA 




TIME TO 
MAXIMUM 
HE IGHT 
































5 




6 




7 








SQUARE 

FUNCTION 




SINE 
FUNCTION 





Examine your design for duplicate 
functions. After eliminating these, if any 
duplicate code remains, it is probably 
needed. 

Watch out for modules which are called 
by or which call a large number of other 
modules. This often indicates some problem 
in the decomposition. 

Modules that perform similar functions 
probably contain duplicate subfunctions. 
If these common functions can be isolated, 
the differences can often be incorporated 
into the calling routines. 

Don't hesitate to over-decompose a 
module. It will be easy to recombine func- 
tions later, but it may require a major re- 
write if further decomposition is found to 
be necessary after the design has proceeded. 

There is one area in which structured 
programming truly shines: documentation. 
If we've done our design properly, there 
isn't any need for additional documentation. 

This may sound a bit outlandish, but 
consider what our refinements have really 
produced. The goal statement makes a very 
fine program abstract; the specification level 
provides us with a complete technical 
description, and properly indented pseudo- 
code can take the place of the program 
flowchart. By appropriately including parts 
of the pseudocode in the code, as in the 
roulette example, we end up with a well- 
commented program. Little else is needed 
except a chart of the modules and their 
connections, as in figure 13, but this we 
would have to do anyway in order to aid our 
decomposition. Once we've finished the 
design, we've also finished the documenta- 
tion and we have a running program. 

Structured programming is a collection 
of techniques that help us organize pro- 
gram development by reducing it to a series 
of manageable steps. The end result is a well 
formed, documented program which is easy 
to understand and to maintain. In today's 
busy world, the time and effort that can 
be saved by practicing structured tech- 
niques is of immeasurable value." 



Figure 13: A module structure chart for a simple program which calculates 
the greatest height reached by a projectile and the time it takes to get there. 



Input 



Output 



1, 




Initial velocity, angle 




2. 


Initial velocity, angle 


Maximum height 


3. 


Maximum height, time to maximum height 






4. 


Initial velocity, angle 


Time to maximum height 


5. 


Initial velocity or sine of angle 


Square of input 


6. 


Angle 


Sine of input 


7. 


Angle 


Sine of input 



REFERENCES 

1. Stevens, W P; Myers, G J; Constantine, L L; 
"Structured Design," IBM Systems Journal, 
1974, number 2, pages 115 thru 139. 

2. McClure, C L; "Top-Down, Bottom-Up, and 
Structured Programming," IEEE Transactions 
on Software Engineering, volume SE-1, number 
4, December 1975, pages 397 thru 403. 

3. Wirth, Niklaus; "Program Development by 
Stepwise Refinement," Communications of 
the ACM, volume 14, number 4, April 1971, 
pages 221 thru 227. 



1 54 August 1978 © BYTE Publications Inc 



Circle 1 on inquiry card. 



6800 SOFTWARE 

Payroll $400 

Math Package, 11% digit accuracy with 

Fortran style formatting $100 

Editor — Text Processor (with mailing lists & labels) $100 

Inventory with Job Cost $400 

other inventory programs from $200 

Accounts Receivable $400 

General Ledger $400 

Stock Market-Club with Tax Reports $ 75 

Digisector Software (scans twice as fast) $100 



Custom Programming 
Our Specialty 



AAA Chicago Computer Center 

3007'/ 2 W. Waueland Ave. 

Chicago, IL 60618 

Phone: (312) 539-5833 

(3 P.M. - 5 P.M. only) 



Continued from page 117 

simulator in the system (see Kin-Man's 
article "An 8080 Simulator" in the October 
1977 BYTE, page 70), we did not have 
much trouble debugging the run time 
routines. During March most of our time was 
spent in refining all the routines: revising 
some features and extensions in the com- 
piler, adding local optimization capabilities 
in the translator and improving the effi- 
ciency of the run time routines. The run 
time routines, which perform all 16 bit 
integer arithmetic and logical operations and 
IO conversions, take only 1 K bytes of 
memory. 

The first step in the bootstrapping pro- 
cess was to write the interpreter in Pascal 
since it is the slowest but shortest program. 
It was coded by straightforward translation 
from the SASIC version. Debugging was 
smooth and the entire program was up and 
running within a week. Compared to the 
BASIC version, the Pascal version runs about 
15 times faster; slightly better than we 
expected. Our next step will be writing the 
translator and compiler in the Pascal subset. 
After that, further development can be done 
in Pascal without the BASIC interpreter. 



For three months, each of us have been 
spending about 10 to 15 hours a week on 
this project. The first version (in BASIC) of 
the compiler and supporting software were 
completed with an estimated effort of two 
working months. Considering such a short 
time period and a functioning compiler, 
we believe we are approaching the task 
from the right direction. We hope that our 
project will attract the attention of many 
readers so that we can share our interest 
and experience in Pascal with them." 



Languages l : orum is a 
feature which is intended as an 
interactive dialog about the 
design and implementation of 
languages for personal com- 
puting. Statements and 
opinions submitted to this 
forum can be on any subject 
relevant to its purpose of 
fostering discussion and com- 
munication among BYTE 
readers on the subject of lan- 
guages. We ask that all corres- 
pondents supply their full 
names and addresses to be 
printed with their commen- 
taries. 



why the last 




is the best 




It has the latest news for users 
(and prospective users) of Heath 
Co. computer products. It isn't 
company- controlled--BUSS can get 
new product information and tid- 
bits about items being developed 
before the official announcement 
by Heath Co. But BUSS does more 
than that--BUSS also lets you in 



on news of compatible hardware & 
software from other vendors. H8 
and HI 1 users may save enough on 
these products to pay for a BUSS 
subscription several times over. 
And users of the ET-3400 Trainer 
aren't left out either. 
The first issue of BUSS came out 
more than a year ago in April of 



1977. Every issue goes by first 
class mail and almost all orders 
for new subscriptions are filled 
within two days. Back issues go 
fast, but most of those for 1978 
are still available. BUSS keeps 
getting better. So send for it: 

12 Issues For $ 6.80 



The Independent Newsletter of Heath Co. Computers 325 Pennsylvania Avenue, S.E. Washington, DC 20003 



Circle 36 on inquiry card. 



August 1978 © BYTE Publications Inc 155 



Let Your Fingers Do the Talking 



Add a Noncontact Touch Scanner 
to Your Video Display 



Gispcis's 

Circuit 

Gellsp 



Steve Ciarcia 

Box 582 

Glastonbury CT 06033 



"Thanks for coming, Steve. I'm glad we 
were finally able to schedule this meeting. 
This problem we have is driving us crazy." 
Fred scurried over to me in the waiting room 
and shook my hand. 

"Let's get you signed in at guard head- 
quarters and then I'll introduce you to Ted." 

This was the first time Fred and I had 
ever met. But his look of relief told me he 
thought I was some kind of engineering whiz 
kid. I picked up my briefcase and we walked 
to the guard's desk. The place was the proto- 
type for a blue chip company waiting room. 
Decked out with numerous perfectly 
blended chairs and sofas, it gave the impres- 
sion of slick tastefulness, and above all 
money. Current issues of various news and 
business magazines were arranged neatly on 
the highly polished end tables. I imagined 
somewhere within the inner depths of the 
company walls a heavy walnut grained office 
door with a brushed brass plate reading 
"Customer Coordinator for Waiting Room 
Impressions." 

My "life in a big company" fantasies were 
interrupted as I signed my name to the guest 
card. Signing my name and title was the least 
significant thing they had me do. There were 
questions of citizenship, social security 
number and sex, statements that I repre- 
sented an equal opportunity employer, and a 
list of subversive organizations to which I 
might belong. The urge to check them all 
and watch the bells and whistles go off was 
curtailed by my basic marketing instincts. 

I passed the card, which ultimately re- 
vealed more information than even my wife 
knew about me, to the guard. He frowned 
and scrutinized the card carefully. The delay 



was agonizing as he examined every detailed 
answer. 

"I'll have to inspect that briefcase, 
buddy," he said. 

Surely I'm no buddy of yours, sir, I 
thought to myself. 1 fully expected the 
frown I usually receive when my briefcase is 
inspected at airports. The inspectors thumb 
through the piles of paperwork and, upon 
discovery of an issue of BYTE, quickly 
cover up this unusually titled magazine and 
gulp an embarrased "Next!" Much to my 
surprise the guard seemed uninterested. 

"OK, here's your visitor's badge. Remem- 
ber, you have to be escorted at all times," he 
said, and whisked me away with a sweep of 
his hand. 

Fred appeared relieved. I was now on the 
inside and hoped I could help alleviate his 
urgent problem. 

"OK, Fred, what's your problem and how 
can my company help you?" This was a 
basic marketing question for our type of 
business which specializes in technical solu- 
tions through custom electronics — which 
really means providing engineering con- 
sulting to companies who have become em- 
broiled in political debate over the latest 
in-house technical fiasco. 

"We'll get to Ted's office in a few seconds 
and I'll let him explain. Basically we need a 
black box." 

Before I could get the functional require- 
ments from Fred, we arrived at Ted's office. 
Being introduced to Ted as "director of 
marketing" elicited a certain degree of re- 
spect, because in his company this was a 
vice-presidential position. Ted motioned me 
to a seat at his mahogany conference table 



1 56 August 1978 © BYTE Publications Inc 



Circle 178 on inquiry card. 



near the window overlooking the company 
golf course. After asking how we wanted our 
coffee, he stated in a very businesslike man- 
ner, "I presume Fred has filled you in on the 
problem?" 

Fred jumped in before I could answer, 
"I'm sorry, Ted, I haven't had a chance to." 

Ted stood up, rotated his body 90 de- 
grees and pointed to the video display ter- 
minal in the corner. "That's my problem! Or 
rather the computer types downstairs who 
program it!" 

I looked at the display. It was a standard 
graphics terminal similar to those available 
from several manufacturers. 

Ted continued, "Programmers program 
computers for other programmers! They 
never think of the user. I drag that terminal 
to board meetings so we can review market- 
ing figures, and I spend half my time enter- 
ing 8 digit passwords, hitting escape and con- 
trol keys to select options, and answering 
endless quantities of mindless interrogation." 
Ted was getting a little hot under the collar. 
"Time is money in those meetings and here 
in my office. I don't want to spend all day 
playing true confessor with a computer! Its 
function is to display information and that's 
all the interaction I want." 

Ted's problem was not unusual. Where a 
program requires that the next entry be a 
control R, one had better type a control R. 
In higher level systems operators need all 
kinds of cross reference manuals to commu- 
nicate in the different languages. 

"Look," Ted turned on the display and 
typed the log-on password and terminal 
identification. Various options were dis- 
played. "This is what I mean. If I want one 
of these options, I have to type a 5 digit 
code, wait to give a particular file number 
and then some other code." 

As displays flashed on the screen I 
couldn't help but offer the obvious ques- 
tion, "Ted, why can't your programmers 
just change the software to allow single or 2 
digit entry?" 

"That would be fine if the software 
weren't already written. We're talking about 
millions of dollars worth of software and I 'm 
using only a small portion within a large 
operating system. I want to be able to 
choose what I want simply." 

Ted needed a "black box" and he knew 
exactly what he wanted. 

"I want something to replace this key- 
board for the limited specific application of 
menu selection and display. Put a log-on 
button on it. When I press log-on it will send 
whatever information is necessary. The user 
should know only that he or she has to log 
into the system— that's all. Next, give me a 
key that will send the necessary message to 




IF QUALITY IS FOREMOST IN YOUR REQUIREMENTS 

WE ARE PROUD TO OFFER THE HIGHEST QUALITY 

DISKETTE DRIVE FOR THE FAIREST PRICE 

FROM THE SAME PEOPLE WHO DEVELOPED THE FIRST 
INNOVEX DISKETTE AND DRIVE IN 1970 

INN0TR0NICS CORPORATION DEPT D 

BROOKS ROAD 

LINCOLN, MASSACHUSETTS 01773 

Tel. (617) 259 0600 



"Blue Box" 

IDS MODEL 60 MODEM AND TERMINAL 
INTERFACE POCKET ANALYZER 



Our Model 60 is called "The 
Blue Box" by thousands of 
users. This compact unit 
packs the most testing capabil- 
ity per dollar. Pinpoints the 
source of trouble between the 
Modem and Terminal. Pro- 
vides access to all 25 lines of 
the EIA RS 232 interface. Has 
12 monitoring LED's plus two 

100 Nashua St., Prov., R.I. 02904. Tel. (401) 274-5100 TWX 710-381-0285 
EXPORT EMEC. BOX 1285, HALLANDALE, FLORIDA 33009 



voltage-sensing LED's. 24 
miniature switches allow iso- 
lated testing and observation 
of all signals. Mini-jumpers 
included for cross-patching 
and signal monitoring. Sturdy 
10 oz. unit has hard plastic 
case, is battery powered, reg- 
ular or rechargeable. Im- 
mediate delivery. 

IIB INTERNATIONAL 
I DATA 

b) SCIENCES, INC. 



Circle 183 on inquiry card. 



August 1978©BYTE Publications Inc 157 



Circle 136 on inquiry card. 



And now... a few 
well chosen words from EMM 




256 words on one chip, to be exact. With TTL compatible 
inputs and outputs, a 400 ns maximum access time, 
and needing only a single +5V power supply to func- 
tion. It's a small memory system in one standard 22-pin 
DIP, with multi-sourced pin-out. And it's available for 
off-the-shelf delivery. Now. 

Get the latest word on the EMM SEMI 3539 256x8-bit 
static RAM from any EMM SEMI sales office or 
distributor. Or call us today. 



SEMI, INC. 



A subsidiary of Electronic Memories & Magnetics 
3883 N.28th Ave., Phoenix, AZ 85017 (602)263-0202 




16K RAM 

FULLY STATIC 

kit $350 

10 SLOT MAINFRAME 

TT-10. . KITS325 

10 SLOT TABLE TOP 

MICROCOMPUTERS 

TT-8080. KITS440 

SYSTEM WITH 1 6K & I/O 

TT-8080-S. . KIT SI 050 

CARD CAGE & 

MOTHER BOARD 

ECT-100. . KITS100 

CCMB-10 KITS75 

WITH CONNECTORS 

& GUIDES 

ECT-I00-F. KITS200 

CCMB-10-F. . KIT $125 

CPU'S, MEMORY 

MOTHER BOARDS 

PROTOTYPING BOARDS 

EXTENDER CARDS 

POWER SUPPLIES 

SHIPPING EXTRA 
DEALER INQUIRIES INVITED 



ELECTRONS CONTROL TECHNQLQGV 



FACTORY ADDRESS: 
763 RAMSEY AVENUE 
HILLSIDE, N. J. 07205 



MAILING ADDRESS: 

P, O BOX 6 

UNION, N. J. 07083 



I 
I 
I 
I 
I 
I 
I 
I 
I 
I 



(201) 686-8080 



get into the menu programs I use and then I 
can select the options by number. You send 
any other messages that are necessary." 

Ted was not discussing the usual black 
box. He was promoting the idea of intelli- 
gent rather than dogmatic communication 
with the computer. A person at this level 
in the corporate structure could not be 
expected to maintain the code word and 
syntax library of the average programmer 
downstairs. What he wanted was only log- 
ical. I left the meeting with the feeling that 
here was a man who also realized it was time 
to fight rather than conform. 

Perhaps if computers were programmed 
less for interaction with computer peripher- 
als and more with the human operator in 
mind, people would be less afraid of them. 
Ted's application was specific and repetitive 
but he was still burdened with the general 
system protocol. In a company that prob- 
ably had a thousand programmers generating 
software, his cry to change everything to 
allow simple input and output (IO) for his 
application would be fighting an uphill 
battle. He knew this and also realized that it 
was easier to change it at his end. 

We would make Ted's black box for him 
and it would solve his immediate problem, 
but what of the future? 

Do your computer input devices limit 
you? Many personal computer systems have 
this problem. 

Consider a simple program to teach your 
child mathematics. Such a program in its 
least complicated form might involve a mul- 
tiple choice and printout something like this: 

4x8 = 28,30, 31, 32, or 35 
The right answer is? 

Most BASICs would require typing 32 and a 
carriage return. Don't forget the carriage re- 
turn! Remember, you have to conform to 
the input protocol of the BASIC. 

Now, before I explain what I'm driving 
at, let me give another example. Say you 
want to use your system for a home manage- 
ment application, such as putting together 
a shopping list. You could list out the fol- 
lowing on the screen: 



1. 


Milk 


6. 


Peanut butter 


2. 


Butter 


7. 


Dog biscuits 


3. 


Margarine 


8. 


Cheese 


4. 


Eggs 


9. 


Coffee 


5. 


Rice 


10. 


Tomatoes 



control P for next page 

Obviously, the number and a carriage return 
could be entered to choose the items that 
would be ultimately listed out as a shopping 
list. A few pages along in the listings, 
though, the entry data will get more com- 
plex strictly from the sheer volume of pos- 
sible choices. Most homemakers would tire 



1 58 August 1978 © BYTE Publications Inc 



Circle 120 on inquiry card. 



of the complexity of such a system even 
though the concept of just choosing items 
from a list sounds simple. 

The solution is to watch the way our 
young mathematics student might react 
when we display the expression 4 X 8 on 
the screen. The natural response is to point 
to the answer! 

The homemaker would appreciate using a 
system that communicates in straightfor- 
ward terms. Display a list of groceries and let 
the user point to the desired items. 

A New Data Input Device 

How do you point to a particular selec- 
tion on a video display generated menu? The 
computer needs to know how to interpret 
your response regardless of the input device. 
The ASCII keyboard is strictly an input code 
to the computer. There are unique codes for 
each switch on the keyboard. The computer 
doesn't know the location of the particular 
key that prints an R or a Q. It recognizes 
only a 7 bit code for these letters. If you 
don't have a keyboard on your computer, 
but want to check out some software that 
needs very little typed entry, you could use 
seven toggle switches. It would be very slow, 
but the computer wouldn't care. All it's con- 
cerned about is that you present the code it 
wants. 

The same goes for any device attached 
to a computer. The most obvious way to 
point to a video display screen and have the 
computer understand it is to use a light pen. 
Such units have been described before in 
BYTE so I won't go into too much detail 
here (see the references at the end of the 
article). All a light pen interface does is pre- 
sent to the computer, usually in the same 
manner as a keyboard input, a code repre- 
senting a position on the video display 
screen. This code has to be translated by 
the program from a position into an action. 
More on this later. 

But, why use a light pen? This again 
makes the operator conform more than 
necessary. 

Fingers Came Before Light Pens! 

Though not capable of the same posi- 
tional resolution as the light pen, it is pos- 
sible to design an interface that allows a non- 
contact data input. Photo I is a picture of 
the prototype designed to illustrate such a 
technique. It is an infrared scanning system 
that serves as a low resolution noncontact 
digitizer. In this particular case it is mounted 
on the front of a video display to approxi- 
mate the function of a light pen, but it could 
just as easily be laid over a typed sheet of 




Photo la: Noncontact scanning digitizer in action with a BASIC program. 




Photo lb: Rear view of the video monitor showing circuitry mounted on two 
printed circuit boards on either side of the picture frame. 



1 


lligglr— 




T- 


H 

( 


11 


tii n i i i i « ■ i t i • > 
i i i i i i i i » i i i i > i i 
i i i i • i i i i i i i • ■ < i 
i i. i i i i t > i i ■ t < i i ■ 

■ i i • i i ■ ■ ■ ■ • ■ ■ i > > 

III Ml llll 1 1 1 III 
i i l ■■■■■■■■••■ i ■ 
1 || III 1 Ml 1 1 

■ 1 1 < 1 I 1 > 1 • • 1 ■ 1 I ■ 
1 1 1 1 1 I ■ 1 1 I I l l III 
, 1 1 1 1 1 1 I I • 1 ■ 1 > 1 I 
1 1 l 1 l 1 1 l 1 1 i l i l l l 

■ ■ ■ > i > ■ < ■ ■ ; ■ ! 

, | I I 1 I I 1 I ■ ■ i ■ • 1 1 


ft 


^d 


- 






f 



Photo 2: Display showing locations of the 256 points of the array. 



August 19786BYTE Publications Inc 159 

















8 BIT 

ADDRESS 

LATCH 


') 


120 Hz 
OSCILLATOR 




















') 










' 


ICI 
f 










IC9.I0 




ADDRESS 
COUNTER 




X AND Y 

INTERRUPTION 

LOGIC 




COMMUNICATION 
AND SCAN 
RESET LOGIC 


















IC2.3 


4,6 




'' IC4,8,II 


IC3,II,8 




1 


! 




" 






DRIVER 

32 

LEDS 




ANALOG 

SWITCH 

32 

PHOTO 




SIGNAL 
CONDITIONER 
1+5 VOLTS WHEN 
LIGHT PATH IS 




OPTIONAL 

AUDIO DATA 
READY 




♦ *M 



















SENSORS 


INTERRUPTED) 









IC 12,13,14,15 



1C 16, 17,18, 19 



IC7.8 



ICI ,20 



COMPUTER 
INTERFACE 



4 BIT 

X ADDRESS 



"\ 4 BIT 

J Y ADI 



DRESS 



*■ DATA READY 



READY 
ACKNOWLEDGE 



Figure 1 : Block diagram of the noncontact scanning digitizer. Two rows of 16 pairs of LEDs and phototransistors are placed 
opposite each other in front of a video display. When the user breaks the infrared light beams with a finger or other object, a 
signal is sent to the computer giving the coordinates of the point in question. 



paper in which position coordinates could be 
translated into usable relationships. I refer to 
it as a touch panel or touch scanner for lack 
of a better word. 

Build Your Own Touch Panel 

The touch panel is an elaborate infrared 
scanner. There are 32 pairs of infrared light 
emitting diode (LED) transmitters and re- 
ceivers mounted around the perimeter of the 
screen. There are 16 on the X (or horizontal) 
axis and 16 on the Y ( or vertical) axis. The 
resolution of such a device is therefore 16 by 
16, and there are 256 individual points. 
Photo 2 shows this grid system. 

Figure 1 is the block diagram of the sys- 
tem, and figure 2 shows the detailed sche- 
matics of the system. The noncontact digi- 
tizer is basically a hardware stepping circuit 
that turns on each transmitter/receiver pair 
sequentially and checks to see if anything 
(like a finger or a pencil) is blocking the 
beam. The transmitters and receivers are on 
opposite sides of the board, as illustrated in 
figure 3. The lower left corner is position 
(0,0) in a Cartesian coordinate system. The 
upper right is location (15,15). 

The hardware first turns on the pair Dq 
and Qq and then sequences down the line 



along the horizontal (X) axis to D-j^ and 
Q-| 5. Only one pair is energized at any one 
time. If any of the beams within these 16 
pairs is obstructed, the 4 bit binary code for 
that location is loaded into IC9. The scan 
continues in the Y direction in a similar 
manner and the 4 bit Y position is loaded 
into ICI 0. If the hardware senses that some- 
thing is obstructing an X and Y beam within 
one scan around the perimeter, it sets a data 
ready flag and stops the scanner. 

The data presented to the computer is an 
8 bit word representing a 4 bit X coordinate 
and a 4 bit Y coordinate. These lines are 
simply tied to a parallel input port, in the 
same manner as all the other devices I de- 
sign. The data ready bit can be read either 
as a single bit input on another port, or as 
a control line on a more intelligent inter- 
face. When the program senses that the 
data ready is high, it reads the scanner data 
and momentarily pulses the ready reset line 
low to start the scan cycle again. 

Use a Picture Frame 

The heart of the system is the LEDs and 
phototransistors shown in photo 3. The de- 
vice on the left is a General Electric LED 56 
and the photodarlington detector used with 



160 August 1978 ©BYTE Publications Inc 



HORIZONTAL DI6-D3I 



VERTICAL DO-DI5 



; 47fl 



» 



■& 



DI8 
DI9 



4f 



025 ■ 
D26 ■ 
D27' 
D28- 
D29' 
D30- 



HORIZONTAL 016-031 
TYPICAL 




QI7 
018 
QI9 
Q20 
021 
022 




TYPICAL 
FOR 8 




026 - 

027 - 

028 - 

029 - 
30- 



.-0 



ICI4 
7445 



I C 1 5 

7445 



ICI8 
4051 



B 

C 

INH 



ICI9 
4051 



QVV 



S'G <U- 



ICI2 
7445 



I CI 3 

7445 



ICI6 
4051 



A 
B 
C 

INH 



B 
C 
INH 



ICI7 
4051 



•47fl 



Dl 
D2 
D3 
04 
D5 
06 



w 



TYPICAL 
FOR 8 



& 



VERTICAL 00-015 
TYPICAL 



• Q3 
■ 04 





TYPICAL 
FOR 8 Q8 





rh 



Figure 2a: LED driver and optical receiver circuitry for the noncontact digitizer. Each transmitter/receiver pair (consisting of an 
LED and phototransistor) is activated sequentially via lines A, B and C. DO and QO are turned on first, and the sequence con- 
tinues down the horizontal axis to D15 and Q15. If any of the beams is broken, the 4 bit binary code for that location is loaded 
into IC9 (see figure 2b). The scan continues in the Y direction and the 4 bit Y position is loaded into IC10. Any obstruction 
causes the data ready flag to be set and the scanner to be halted. 



Augusl 1978 © BYTE Publications Inc 161 



D C B A 



Obi 

O B2 
O B3 



O B4 




COMPUTE R 
INTERFACE 
SIGNALS 



O B0 



> X ADDRESS 



O B5 
O B6 
O B7 



) Y ADDRESS 



O DATA READY 



ACKNOWLEDGE 
AND READY RESET 



Figure 2b: Interface cir- 
cuitry for the noncontact 
digitizer. Data presented 
to the computer is in the 
form of an 8 bit word 
representing a 4 bit X 
coordinate and a 4 bit Y 
coordinate. These lines are 
tied to the parallel input 
port of the computer. 



Notes on figure 2 

1. All capacitors are 25 V ceramics unless otherwise specified. 

2. All resistors are KW5 percent unless otherwise specified. 

3. /77 denotes signal ground. 

4. ICs 16 thru 19 are CMOS devices and should be handled carefully. 

5. Additional LEDs on prototype unit are for testing purposes only. 

6. QO thru Q31 : GE LED56 infrared emitter. 

DO thru D31 : GE L14F2 photodarlington infrared detector. 



IC 


Type 


+5 V 


Gnd 


1 


7400 


14 


7 


2 


7493 


5 


10 


3 


7474 


14 


7 


4 


7404 


14 


7 


5 


74155 


16 


8 


6 


74123 


16 


8 


7 


LM311 


8 


1 


8 


7408 


14 


7 


9 


7475 


5 


12 


10 


7475 


5 


12 


11 


7400 


14 


7 


12 


7445 


16 


8 


13 


7445 


16 


8 


14 


7445 


16 


8 


15 


7445 


16 


8 


16 


CD4051 


16 


8 


17 


CD4051 


16 


8 


18 


CD4051 


16 


8 


19 


CD4051 


16 


8 


20 


74121 


14 


7 



Table I : Power wiring table for the noncontact digitizer. 



162 August 1978 © BYTE Publications Inc 



IO^F 



A B C D 

0000 



IK 



CTRL [Z>~ 



7400 7400 
I ■ ,. 4 . 

2_ ICI V^ 1| 5 ICI V 



220n 
-^M 



OSC ~ 120Hz 




A\ • — ^vw I 



SIG O 




C>S2 
OS4 



"C_>LD 



-O NL 



SENSITIVITY ffl 



Figure 2c: Address decoder and phototransistor signal conditioning circuitry for the noncontact digitizer. IC2 is a counter driven 
by the oscillator at upper left. When a phototransistor is activated, the SIG line goes high, activating line NL, which stores the 
4 bit address of the interrupted beam (see figure 2b). The scanner is finally halted via the CTRL line. The computer then reads 
the coordinates and reactivates the scanner. 



CTRL O 



: 33K 




^ 



220 



220 



ICI V^-l ll|2 ICI p 





m 



*A FEW O.l^-F CAPACITORS 
SHOULD BE PLACED AROUND 
THE BOARD BETWEEN +5V 
AND THE GND AS BYPASS 
CAPACITORS 



An industrial grade alpha- 
numeric terminal, incor- 
porating touch panel input, 
is being manufactured. For 
information contact: 

General Digital Corp 
700 Burnside Av 
East Hartford CT 06108 
(203)289-7391 



Figure 2d: Optional audio data ready signal circuit, which causes an audible beep on a speaker 
whenever a pair of beams is obstructed and sets the data ready signal. 



August 1978 © BYTE Publications Inc 163 




Photo 3: GE LED56 light emitting diode (left) and GE LJ4F2 photodarlington infrared detector used to transmit 
and receive infrared light, respectively, for use in the noncontact scanning digitizer. 



it is the L14FZ. These units have built-in 
glass lenses and are very sensitive. A much 
less expensive though equally capable opto- 
electric pair is the H17B1 shown on the right 
in photo 3. Because it has no lens, it requires 




Photo 4a: Mounting the photodarlington detectors. 



considerably more shielding from ambient 
light, but it will work if properly aligned. I 
have checked the operation of both devices 
and recommend the lensed type if you 
intend to use the touch scanner in high 
ambient light environments. The prototype 
described here used LED56s and L14Fs. 

The frame that holds all the electronics is 
a $4 discount store wooden picture frame. 
Half inch (1.27 cm) wooden strips glued 
around the edges hold the phototransistors 
and LEDs in evenly spaced, recessed, Va inch 
(0.63 cm) holes. This technique is shown in 
photos 4a and 4b. 

The entire assembly is attached to the 
picture frame and can be secured to the 
front of a video display. The display in these 
photos is a 12 inch (30.76 cm) surplus Phase 
4 monitor. 

One further addition to the hardware to 
aid users of the scanner is audio feedback to 
confirm that a position coordinate has been 
selected. The data ready strobe triggers a 0.1 
second beep on a small speaker. 

Calibration and Testing 

There is virtually nothing to calibrate or 
test on this unit. The only adjustment is the 



164 Augusi 19780BYTE Publications Inc 



0000000000000000 





Notes for figure 3 


1. 


Scan is sequential from 




DO thru D31. 


2. 


Only one LED is on at 




any one time. 


3. 


Scan rate is approxi- 




mately four samples per 




second. 


4. 


Total detectable points 




= 256. 



LEGEND 
LED POSITION 



O PHOTOTRANSISTOR 
POSITION 



► LIGHT PATH 

(X,Y) XY COORDINATE 
EACH POSITION 
IS GIVEN AS A 
4 BIT BINARY CODE 



sensitivity control on the phototransistor 
amplifier. Direct sunlight or incandescent 
lights will cause saturation of the input and 
disable the scanner. The only other impor- 
tant consideration is mechanical alignment: 
the LED and phototransistor constituting 
each pair must be exactly opposite and in 
direct alignment. 

The program in listing 1 is a simple 
BASIC program to exercise the scanner and 
provide the operator with an indication of 
its operational integrity. It is written in 
Micro Com 8 K Zapple BASIC. The decimal 
coordinates of X and Y will be output as 
your finger is moved across the scanned area. 
This is the only routine that has to be added 
to any BASIC program to exercise the scan- 
ner. If set up as a subroutine by changing 
line 210 to a RETURN statement, the rou- 
tine will turn the scanner on when called and 
return to the main program with a value in 
variable D representing the coordinates to 
which you pointed. The main program then 
responds appropriately. 

Obviously the scanner would be more 
efficiently driven by a machine language pro- 
gram, but I feel most users will be interested 
in utilizing this device with a high level lan- 
guage. The relatively slow scan rate allows 
considerable leeway. 

Next month I'll pursue the software (in 
BASIC) necessary to drive this scanner effec- 
tively. The major emphasis will be the use of 
menus and keyboard substitutions." 



REFERENCES 

Loomis, Sumner S, "Let There Be Light Pens," 
January 1976 BYTE, page 26. 
Webster and Young, "Add a $3 Light Pen to 
Your Video Display," February 1978 BYTE, 
page 52. 




Figure 3: LED and phototransistor placement for the 16 by 
16 Cartesian coordinate noncontact digitizer. 



100 REM **RESET DATA READY BIT TO START SCANNER** 

1 10 OUT 16,0 :OUT 16,255 :REIV1 THIS IS A 10 MSEC STROBE 

120 REM **TEST DATA READY BIT** 

130 T=INP(2) :REM READ INPUT P0RT2 

140 T=T AND 1 :REM MASK ALL BUT LSB 

150 IF T<>1 THEN GOTO 130 

160 REM •« READ DATA ** 

170 D = INP(16) :REM SCANNER IS ATTACHED TO PORT 16 

180 X=(D AND240)/16 :REM MASK AND SHIFT TO OBTAIN 4 B IT X 

190 Y=D AND 15 :REM MASK TO OBTAIN 4 B IT Y 

200 PRINT"X=";X,"Y=";Y 

210 GOTO 110 

Listing 1 : Program written in 8 K Zapple BASIC to exercise the scanner. 




Photo 4b: Mounting the LEDs. 



August 1978©BYTE Publications Inc 165 



JACPOT 



Edwin E Hastings 
18 Churchill Rd 
Marblehead MA 01945 



Listing 1: The JACPOT game, written in BASIC. [We detect 
of bias in the symbols for a winning combination, which can 
defined arbitrarily to suit the user's fancy. . .CHj 

JACFOT 10-MAY-77 HU BASIC/RT--1 1 V01-01 

10 REM COPYRIGHT 1977 BY EDWIN E. HASTINGS 

20 RANDOMIZE 

30 PRINT ■ PLEASE ENTER THE AMOUNT OF MONEY" 

40 PRINT • YOU WISH TO PLAY WITH " > 

SO INPUT Z 

60 IF Z<0 THEN 80 

70 GO TO 90 

SO PRINT ■ PLEASE ENTER A POSITIVE NUMBER.' \ GO TO 50 

90 PRINT 

100 PRINT " DC) YOU WANT INSTRUCTIONS ( Y-N )' ! 

110 LET A*»CHR*<SYS(4>) 

120 IF A*="N" THEN 310 \ IF A*<>*Y* THEN 100 

130 PRINT 

140 PRINT ' BANDIT A SIMULATED SLOT MACHINE" 

150 PRINT " PLAY UNTIL YOU OR THE BANK ARE BROKE" 

160 PRINT ■ WINNING COMBINATIONS ARE AS FOLLOWS." 

170 PRINT 

180 PRINT " 8080 B080 ???? PAYS Ml" 

190 PRINT " 8080 IBM ???? PAYS 2S1" 

200 PRINT " 8080 8080 IBM PAYS 4*1" 

210 PRINT ■ 8080 8080 8080 PAYS 4S1" 

220 PRINT ■ 6800 6800 6800 PAYS Bil' 

230 PRINT ■ 6502 6502 6502 PAYS 14*1" 

240 PRINT " Z-BO Z-80 Z-BO PAYS 32 ! 1 ■ 

250 PRINT " CARD CARD CARD PAYS 4411* 

260 PRINT " TAPE TAPE TAPE PAYS 128! 1" 

270 PRINT " BISK DISK DISK PAYS 256! 1" 

280 PRINT " IBM IBM IBM SUPRISE" 

290 PRINT " DEC DEC DEC TAKES IT ALL" 

300 PRINT 

310 PRINT - WHEN A QUESTION MARK IS PRINTED* RESPOND WITH THE" 

320 PRINT ■ NUMBER OF REPEATED PLAYS YOU WISH TO MAKE." 

330 PRINT ■ A COMMA. AND THE SIZE OF YOUR BET. IF YOU WISH - 

340 PRINT " TO STOP BEFORE YOU BREAK THE BANK. OR YOU GO BROKE." 

350 PRINT " INPUT A '0.0' WHEN YOUR BETS ARE ASKED FOR." 

360 PRINT \ PRINT 

370 LET B1=INT(1.85*Z> \ LET P1=Z 

380 LET C1=0 \ LET C2=0 

390 IF C2<C1 THEN 510 

400 IF B1<=0 THEN 1480 

410 GO TO 480 

420 PRINT ■ YOUR BETS PLEASE - ! \ INPUT C1.C4 

430 PRINT 

440 IF C1=0 THEN IF C4=0 THEN 1670 

450 IF C4< = THEN 420 

460 LET C2=0 

470 GO TO 510 

480 PRINT " THE BANDIT HAS t'Bl'.YOU HAVE $"pl 

490 PRINT 

500 GO TO 420 

510 LET P1=P1-C4 \ LET B1=B1+C4 

520 LET C2=C2+1 

530 GOSUB 740 

540 LET A1=X2 

550 GOSUB 740 

560 LET A2=X2 

570 GOSUB 740 

580 LET A3=X2 

S90 IF Al<>9 THEN 600 \ LET A1=A2 

600 IF A2<>9 THEN 610 \ LET A2=A1 

610 IF A3<>9 THEN 620 \ LET A3=A2 

620 IF (A1*A2X>81 THEN 640 

630 LET A2=A3 \ LET A1=A2 

640 IF A1=A2 THEN 660 

650 GO TO HBO 

660 IF A2=A3 THEN 720 \ IF Al=2 THEN 6B0 

670 EC TO 1180 

680 IF A3=l THEN HBO 

690 LET B1=B1-<2*C4> \ LET P1=P1+(2*C4> 

700 PRINT "WIN $"i2*C4 

710 GO TO 390 

720 IF Al = l THEN 1180 

730 GO TO 1370 

740 LET X2=0 

750 LET X1=INT(10000*RND<1)> 

760 IF Xl>7578 THEN 750 

770 IF Xl>7514 THEN 870 

780 IF Xl>7412 THEN 880 

790 IF Xl>7248 THEN 890 

800 IF Xl.J-6968 THEN 900 

810 IF Xl>6366 THEN 910 

320 IF Xl>5894 THEN 920 

830 IF Xl>4818 THEN 930 

840 IF Xl>3096 THEN 940 

850 IF Xl>340 THEN 950 

860 GO TO 960 

870 LET X2=X2+1 

880 LET X2=X2fl 

890 LET X2=X2+1 

900 LET X2=X2+1 



a small amount 
of course be re- 



Many states are now working to legalize 
gambling, but why wait for the bureaucratic 
process when you can start a casino on your 
own computer (for fun of course) with the 
JACPOT program. JACPOT is a simulation 
of a slot machine written in BASIC, with 
bets limited only by the constraints of your 
machine. You can lose all your money and 
then lose it again! 



910 LET X2=X2U 

920 LET X2=X2+1 

930 LET X2=X2+1 

940 LET X2=X2I1 

950 LET X2=X2+1 

960 LET X2=X2+1 

970 IF X2<10 THEN 990 

980 PRINT -DEC "( \ RETURN 

990 IF X2<9 THEN 1010 

1000 PRINT "IBM *l \ RETURN 

1010 IF X2<8 THEN 1030 

1020 PRINT "DISK "S \ RETURN 

1030 IF X2<7 THEN 1050 

1040 PRINT "TAPE "» \ RETURN 

1050 IF X2:.6 THEN 1070 

1060 PRINT "CARD "> \ RETURN 

1070 IF X2<S THEN 1090 

10B0 PRINT "Z-BO " > \ RETURN 

1090 IF X2<4 THEN 1110 

1100 PRINT "6502 "! \ RETURN 

1110 IF X2<3 THEN 1130 

1120 PRINT "6800 "! \ RETURN 

1130 IF X2<2 THEN 1150 

1140 PRINT "8080 "I 

1150 IF X2>1 THEN 1170 

1160 PRINT "WANG " i 

1170 RETURN 

1180 LET A4==0 

1190 IF ftl-10 THEN 1260 \ IF A2==10 THEN 1260 \ IF A3=10 THEN 1260 

1200 IF A1>1 THEN 1210 \ LET A4=A4+1 

1210 IF A2>1 THEN 1220 \ LET A4=A4+1 

1220 IF A2>1 THEN 1230 \ LET A4=A4+1 

1230 IF A4>0 THEN 1290 

1240 PRINT 

1250 GO TO 1580 

1260 PRINT "WIN »"10*C4" WITH DEC" 

1270 LET B1=B1-<10*C4> \ LET P1 = PH- ( 10*C4 ) 

1280 00 TO 1580 

1290 IF A4>1 THEN 1320 

1300 LET B1=B1+(2*C4) \ LET P1=P1~<2*C4) 

1310 PRINT "ZILCH-YOU LOSE $"2*C4 \ GO TO 15B0 

1320 IF A4>2 THEN 1350 

1330 LET B1=B1+(4*C4> \ LET P1=P1-(4*C4> 

1340 PRINT -DOUBLE ZILCH-YOU LOSE »"4*C4 \ GO TO 1580 

1350 LET B1=B1-K8*C4> \ LET P1=P1-<8*C4> 

1360 PRINT -TRIPLE ZILCH-YOU LOSE t"8*C4 \ GO TO 1580 

1370 LET X4=2 

1380 FOR X3 = 2 TO 10 

1390 LET X4=X4*2 

1400 IF A1-X3 THEN 1420 

1410 NEXT X3 

1420 IF Al=10 THEN 1460 \ IF Al=9 THEN 460 

1430 LET B1-B1-<X4*C4> \ LET P1=P1+(X4*C4 ) 

1440 PRINT "WIN t"X4*C4 

1450 GO TO 1580 

1460 LET P1=P1*2 

1470 LET B1=0 

1480 PRINT 

1490 PRINT TAB(IS) i "JACKPOT" iCHR*<7) fCHR* (7) 

1500 PRINT " YOU BROKE THE BANK. YOU NOW HAUE $-Pl*>" 

1510 PRINT " PLEASE LEAVE QUIETLY" 

1.520 GO TO 1630 

1530 LET Z2=INT(275*Z) 

1540 LET P1=P1+Z2 \ LET B1=B1-Z2 

1550 PRINT "IT'S MAGIC BONUS TIME, YOU WIN "Z2" DOLLARS." 

1560 PRINT "COMPLIMENTS OF DEC ! " SCHR* (?) 

1570 FOR K==l TO 4 \ PRINT \ NEXT K 

1580 IF B1<=0 THEN 1490 

1590 IF P1<=0 THEN 1620 

1600 GO TO 390 

1610 PRINT 

1620 PRINT " YOU'RE ALL DONE, NO CREDIT ALLOWED." 

1630 FOR K2=l TO 4 \ PRINT \ NEXT K2 

1640 PRINT "DO YOU WANT TO PLAY AGAIN(Y-N)"! 

1650 LET YU=CHRt(SYS<4) ) 

1660 IF Yt="Y" THEN 310 \ IF Y4<>"N" THEN 1650 

1670 END 

READY 



166 August 1978©BYTE Publications Inc 



Listing 2: A sample run of JACPOT. 



JACPOT 10-MAY-77 MU BASIC/RT-11 UOl-Ol 

PLEASE ENTER THE AMOUNT OF MONEY 
YOU UISH TO PLAY WITH ? 1000 

DO YOU WANT INSTRUCTIONS<Y-N>Y 

BANDIT A SIMULATED SLOT MACHINE 

PLAY UNTIL YOU OR THE BANK ARE BROKE 
WINNING COMBINATIONS ARE AS FOLLOWS. 



8080 


8080 


???? 


PAYS 


2 


1 


8080 


IBM 


???? 


PAYS 


2 


1 


8080 


8080 


IBM 


PAYS 


4 


1 


8080 


8080 


8080 


PAYS 


1 


1 


6800 


6800 


6800 


PAYS 


a 


1 


6502 


6502 


6502 


PAYS 


16 


1 


Z-80 


Z-80 


Z-80 


PAYS 


32 


1 


CARD 


CARD 


CARD 


PAYS 


64 


1 


TAPE 


TAPE 


TAPE 


PAYS 


128 


1 


DISK- 


DISK 


DISK 


PAYS 


256 


1 


IBM 


IBM 


IBM 


SUPRISE 




DEC 


DEC 


DEC 


TAKES 


IT AL 



WHEN A QUESTION MARK IS PRINTED , RESPOND WITH THE 

NUMBER OF REPEATED PLAYS YOU WISH TO MAKE. 

A COMMArAND THE SIZE OF YOUR BET. IF YOU WISH 

TO STOP BEFORE YOU BREAK THE BANK, OR YOU GO BROKE. 

INPUT A '0.0' WHEN YOUR BETS ARE ASKED FOR. 



THE BANDIT HAS * 1849 .YOU HAVE * 1000 
YOUR BETS PLEASE? 10.10 



TAPE 


6502 


WANG 








8030 


8080 


Z-80 


WIN 


* 


20 


S080 


6502 


8080 








6502 


6800 


6800 








CARD 


80B0 


8080 








CARD 


8080 


8080 








8080 


CARD 


6502 








8080 


8080 


6800 


WIN 


$ 


20 


TAPE 


8080 


6800 








6502 


Z-BO 


TAPE 








THE BANDIT HA 


3 * 1909 


.YOU HAVE 1 


YOUR BETS PLEASE? 


10.20 


6800 


6800 


6800 


WIN 


* 


160 


6502 


6800 


6800 








6800 


8080 


TAPE 








Z-80 


8080 


8080 








Z-80 


8080 


6502 








6502 


8080 


8080 








6502 


6502 


6800 








DEC 


6502 


CARD 


WIN 


$ 


200 WITH I 


TAPE 


8080 


Z-80 








8080 


8080 


8080 


WIN 


t. 


HO 



THE BANDIT HAS * 1669 . YQU HAUE $ 1180 
YOUR BETS PLEASE? 10.100 



DOUBLE ZILCH-YOU LOSE » 400 
WIN '4 400 



DOUBLE ZILCH-YOU LOSE * 400 
YOU'RE ALL DONE. NO CREDIT ALLOWED. 



DO YOU WANT TO PLAY AGAIN<Y-N)Y 

WHEN A QUESTION MARK IS PRINTED, RESPOND WITH THE 

NUMBER OF REPEATED PLAYS YOU WISH TO MAKE, 

A COMMA. AND THE SIZE OF YOUR BET. IF YOU WISH 

TO STOP BEFORE YOU BREAK THE BANK. OR YOU GO BROKE, 

INPUT A '0,0- WHEN YOUR BETS ARE ASKED FOR. 



Z-80 


TAPE 


8080 


8080 


6B00 


Z-80 


6502 


6502 


8080 


8080 


WANG 


6800 


8080 


8080 


8080 


8080 


6800 


6502 


CARD 


6502 


8080 


6502 


WANG 


IBM 





'HE BANDIT HA 


3 $ 


1849 


,YOU HAVE * 


YOUR BETS PLEASE? 


11 




WANG 


6800 


6502 


ZILCH- 


YOU LOSE * 10 


3080 


8080 


8080 


WIN 




1 


20 


8080 


6502 


8080 










TAPE 


8080 


WANG 










8080 


8080 


6800 


WIN 




* 


10 


DEC 


8080 


8080 


WIN 




* 


50 WITH DEC 


6800 


8080 


8080 










8080 


6800 


DEC 


WIN 




* 


SO WITH DEC 


8080 


8080 


WANG 










8080 


6502 


CARB 










TAPE 


8080 


8080 












HE BANDIT HA 


j $ 


1784 


,YOU HAVE » 


YOUR BETS PLEASE? 


10,10 


WANG 


6800 


IBM 


ZILCH- 


YOU LOSE t 20 


CARD 


6800 


8080 










80B0 


8080 


IBM 


WIN 




♦ 


40 


Z-80 


8080 


6800 










CARD 


8080 


6800 










8080 


6B00 


IBM 










8080 


8080 


8080 


WIN 




$ 


40 


8080 


8080 


6800 


WIN 




* 


20 


8080 


8080 


8080 


WIN 




* 


40 


6502 


8080 


8080 










THE BANDIT HAS * 


1764 


,YOU HAOE $ 



YOUR BETS PLEASE? 0,0 



The main object of JACPOT is to play 
until you or the house go broke. The win- 
ning combinations pay off in ratios of from 
2:1 to 256:1 and more. In more than 1600 
bets my payoff ratio has varied from 2:1 to 
64:1. 

In JACPOT there are different ways to 
win and lose. The first way to win is to hit 
a winning combination. The second is to hit 
a DEC in a combination. DEC pays off 1 0: 1 . 



Table 1: A list of the major variables used in 
J A CPOT and their functions. 



Variable 


Function 


B1 


The house's money. 


C1 


The number of bets. 


C4 


The size of the bets. 


P1 


The player's money (during the game). 


X1 


Determines the combinations. 


X2 


Prints the combinations. 


Z 


The player's money (start of game). 



The way to lose money is to hit a ZILCH, 
which causes you lo lose up to 8:1. 

The program (see listing 1) was written 
on a Digital Equipment Corporation PDP-1 1 , 
but can be easily modified for most BASIC 
interpreters. In lines 110 and 1650, the 
statement LET. . .=CHR$(SYS(4)) gives an 
automatic carriage return after the variable is 
inputted; this line can be replaced with an 
INPUT statement. Lines 870 to 960 look 
repetitive but they serve to determine 
the combinations. The backslashes in some 
lines are used to separate two or more lines. 
They are replaced by colons in some BASIC 
packages. In lines 1490 and 1560 the CHR$ 
(7) is used to ring the bell. The RAN- 
DOMIZE statement in line 20 is used to 
activate the random number generator. In 
some BASICs only the RND in line 750 
is needed. 

I hope that you have a good time running 
this program. If you have any questions or 
comments about this program, please write 
to me." 



August 1978©BYTE Publications Inc 167 



Pascal versus BASIC: 



An Exercise 



Allan M Schwartz 

114-2 NimitzDr 

West Lafayette IN 47906 



Introduction 

Pascal is one of the newest high level 
languages on the personal computing scene. 
Pascal has been accepted at many universi- 
ties for several years. It is being used more 
and more in industry outside of education, 
and has just recently been introduced in 
microcomputers. Why is there so much 
enthusiasm about Pascal? 

Pascal is a general purpose language, the 
product of the long evolution of computer 
languages. It has a simple but elegant syntax 
and has been implemented in both large 
systems (CDC 6000, IBM 360 and 370, 
Burroughs 6700, etc) and microcomputers 
(LSI-1 1,8080, 8085 and Z-80). 

Historical Background 

Just as computer hardware has been 
continuously evolving during the past 25 
years, so too have computer software 
requirements. Originally, computers were 
employed to work on mathematical tasks 
such as solving ballistics problems, or gen- 
erating tables of logarithms. Later it became 
economically feasible to use computers for 
data processing or working with voluminous 
amounts of data such as census data or bank 
statements. Recently wc have seen com- 
puters participate in various customized, 
dedicated applications like the control of 



About the Author 

Allan Schwartz Is currently studying computer science at Purdue 
Uniuersity and researching the applications of microcomputers to 
programming methodology. Previously, Mr Schwartz worked for 
Nielsen Engineering and Research Inc at NASA Ames Research Center 
as a systems programmer. He owns an MC6800 based microcomputer 
system and is developing a Pascal P-machine emulator for the 6800 
microprocessor. 



traffic lights, microwave ovens and auto- 
mobile ignitions. 

We have seen a variety of applications 
and language requirements lead to an evolu- 
tion of computer languages. "Programming" 
originally entailed the translation of simple 
algorithms into machine code and bit by bit 
loading of the computer's memory via the 
front panel. Later, assembly languages were 
used, followed by equation or formula trans- 
lators such as FORTRAN. When it was dis- 
covered that computing involved mostly 
computing decisions and repetition, the lan- 
guage ALGOL (/4/_GOrithmic Language) was 
designed to express algorithms more clearly 
and conveniently. The need for a language to 
structure and represent all of the data and 
files in business data processing applications 
was filled by COBOL. Today we have 
Pascal, which has flexible data representa- 
tions, sufficient flow of control statements 
to represent algorithms, and a clear, simple 
syntax making it a favorite for a variety 
of applications. Pascal is the result of several 
evolutionary steps in the history of com- 
puter languages. 

Why is Pascal so appealing? First, it is an 
expressive language. It has several control 
structures that make the coding of algo- 
rithms very natural. Second, Pascal has 
flexible data representation. 

Expression of Algorithms in Pascal 

Figure 1 presents an algorithm to com- 
pute the greatest common divisor (GCD) 
of X and Y. The greatest common divisor 
of the integers X and Y is the largest integer 
that will divide evenly into both X and Y. 
Note that three assertions are stated in the 
flowchart. The first, a necessary pre- 
condition, states that X and Y must be 
positive integers. The second is a loop 
invariant such that, when control passes 
through that path in the flowchart, the 
GCD(X, Y) is equal to the GCD(A, B). The 



168 



August 1978 © BYTE Publications Inc 



third, a post condition, states that A is equal 
to B, which is equal to the result, the 
GCD(X, Y). 

If we can prove these three points are 
true, then the algorithm is correct — that is, 
it will compute the greatest common divisor 
of X and Y. The loop invariance is easily 
proved, because if B is greater than A, the 
GCD(A,B) equals GCD(A, B-A) (a more 
rigorous proof is posed as an exercise in 
Wirth's book (sec bibliography)). The post 
condition is also easy to prove, because the 
path to this exit is taken only when A 
equals B, and then the GCD(A, A) certainly 
equals A. 

We arc now reassured that if the precon- 
dition is true, the algorithm will compute 
the desired result. Now, how do we code 
this algorithm into our favorite programming 
language? Before we answer that question, 
let's look at the elements of the flowchart. 
The flowchart in figure 1, and indeed any 
computable algorithm, is made up of three 
elements: sequence, selection and repetition. 
Sequences are represented in the flowchart 
by rectangular boxes such as: 




Note that this flowchart element has one 
entry (the arrow going in) and one exit. [In 
BYTE's use of flowcharts, a lop to bottom 
flow of control is assumed with arrows used 
for exceptions; in this article we make a 
stylistic exception, using extra arrows to 
emphasize flow. . .CH] 

The second flowchart element is selec- 
tion. Selection is represented by: 





TRUE / 


(DECISION 


;\ FALSE 






• 


)/ 


' 


(any flowchart 
element) 




(ANY FLOWCHART 
ELEMENT) 













T 



A selection flowchart element requires at 
least two or three boxes; however, it always 
has one entry and one exit. 



f gcd J 




Figure I : An algorithm to calculate the greatest common divisor (GCD) of 
two integers. (The greatest common divisor of two integers is the largest 
integer that will divide evenly into the two integers.) 



The third flowchart element is repetition. 
It is represented by: 




FALSE 



(ANY FLOWCHART 
ELEMENT) 



This form of repetition is called a "while 
loop," because while the decision is true, 
the element is repeated. Again, this element 
has one entry and one exit. 

These flowchart elements have been 
translated directly into Pascal statements 



August 1978 © BYTE Publications Inc 



169 



(see listing 1). Note that the sequence 
element: 




( 


ROLL 


) 




SC- 


OIEI» 


DIE 2 



is translated into the two Pascal assignments. 

a := x ; b := y 

Now some of the syntax details of Pascal 
become evident. The assignment operator 
is :=, which is different from the FOR- 
TRAN or BASIC " = " in that the := oper- 



CALL 
CRAPS 




POINT*-S 
ODDS*- 2/1 



POINT»-S 
ODDS*- 3/2 



POINT-*-S 
00DS»-6/5 



CALL 
WIN 



ERROR 
ROUTINE 



"T 

Figure 2: Flowchart for a portion of the dice game "craps. " The five IF tests 
can be implemented in Pascal with one case statement. 



Metavariables 

Bracketed symbols such as ("< statement >") all call metalin- 
guistic variables (or metavariables) or syntactic units. They represent a 
class of possible language elements. They are nonterminal symbols; that 
is, the symbol "< statement >" itself will not appear in a Pascal pro- 
gram. It represents a set of legal symbols that can appear in its place 
in the program. Nonterminal symbols are bracketed by "< "and "> " 
and are printed in italics to distinguish them from terminal symbols 
such as for := if do. Terminal symbols are usually printed in heavy 
type if the symbol is a language key word, and appear exactly as they 
would in the Pascal program. 



ator in Pascal is used for assignment only, 
while the = in BASIC and FORTRAN is 
used as both the assignment operator and 
the equals sign. Statements are separated 
by semicolons, and any number of state- 
ments may be typed on one line. If the 
above sequence were a subelement of a 
selection element, it would be bracketed 
by begin and end keywords. For example: 

if (x>0) and (y>0) then 

begin a := x ; b : = y 
end 

Any number of elements combined into one 
sequence element by begin and end brackets 
forms a compound statement. 

The selection flowchart element is trans- 
lated into the Pascal if statement: 

if a>b then a := a—b 
else b := b—a 

And the repetition flowchart element is 
translated into the Pascal while statement: 

while a O b do <statement> 

The expression <statement> is called a 
metavariable. For an explanation, see the 
accompanying text box. Notice, though, 
that the metavariable < statement > in the 
greatest common divisor while clause is an if 
statement. 




The real power in Pascal's algorithm descrip- 
tive capability lies in this sort of nesting. 
For example, any element can occur as a 
subelement of the while or if statement. 
These are called structured statements, 
and they can be nested to any depth. 

Look again at the greatest common 
divisor (GCD) function in listing 1. Note 
that the routine consists of a heading and 
a variable declaration statement followed 
by one compound statement, bracketed 
by begin and end. Functions and proce- 



170 



August 1978 ©BYTE Publications Inc 



dures in Pascal can be thought of as named 
statements with local variables. They always 
have one entry and one exit, and therefore, 
a call is flowcharted as a sequence element 
such as: 



is represented by: 



Z*-GCD(X,Y) 



OR 




Pascal has a second selection statement 
called the case statement. This statement 
is a concise representation of the special 
case of nested if statements. An example 
of this is the "craps first roll" algorithm 
used to implement the dice game called 
craps. A pair of dice can obviously have 
only one summed value from 2 to 1 2 on any 
given throw, making this an ideal use for the 
case statement (see figure 2). The five nested 
decisions can be represented with the follow- 
ing Pascal case statement: 

s : = die 1 + die 2; 
case s of 
2, 3, 12 : 

craps; 
4, 10 : 

begin point : = s; odds : = 2/1 

end; 
5,9: 

begin point : = s; odds : = 3/2 

end; 
6,8: 

begin point : = s; odds : = 6/5 

end; 
7, 11: win 
end |of case statement^ 

Of course, this could be represented using if 
statements; however, the case statement is 
much more concise and clear. When the 
decisions in a group of nested if statements 
are mutually exclusive, that is, if any one 
being true implies that the rest are false, 
then a case statement is probably the ap- 
propriate representation. 

Pascal allows two other forms of repeti- 
tion: the repeat statement and the for 
statement. The repeat statement: 

repeat 

<any statement^ 
until <condition> 



(ANY FLOWCHART 
ELEMENT) 




Repetitions can always be expressed as 
either repeat statements or while statements. 
However, one form usually sounds better. 
For example: 

repeat shoot craps 
until broke or out of time 
is equivalent to 
shoot craps; 
while not broke 
and not out of time 
do 5/700/ craps 

The for statement: 

for <var>: = 

<init val> to < final val> 
<any statement^ 

is represented by: 




August 1978 ©BYTE Publications Inc 171 



Notice that again there is one entry and one 
exit for this Flowchart element. 

Another element we might see in a flow- 
chart is an arrow coming out of a subelc- 
ment, perhaps to a different page of the 



function gcdix,y: integer): integer; 
var a,b: integer; <x,y >0 I 

begin 

a := x; b ;= y; . 

whileaObdo \ GCD(X.Y) = GCD(A.B) [ 
if a>b then a := a—b 
else b := b—a; 



end 



gcd := 



JGCD(X.Y) = A = b| 



flowchart. This exit from the normal flow 
of execution is the only use of the Pascal 
goto statement. Indeed, very few Pascal 
procedures need goto statements to ex- 
press the algorithm. Goto statements can 
fog the otherwise clear logic of a routine. 

A final element that might be found in 
flowcharts is an assertion and commentary 
such as: 



I 1 

H GCD(X.Y) EiEB I 

I I 



Listing 1 : Pascal function to calculate the greatest common divisor of two 
integers. 



100 


LET A = X 


110 


LET B=Y 


120 


IF A=B THEN 190 


130 


REM . . . GCD(X.Y) = GCD(A,B 


140 


IF A>B THEN 170 


150 


LET B=B-A 


160 


GOTO 180 


170 


LET A=A-B 


180 


GOTO 120 


190 


REM . . . GCD(X.Y) = A = B 


200 


RETURN 



Listing 2: BASIC subroutine to compute the greatest common divisor of 
two integers. 



INTEGER FUNCTION GCD(X,Y) 
INTEGER A,B,X,Y 
A=X 
B = Y 

IF (A.EQ.B) GOTO 190 
. . . GCD(X.Y) = GCD(A.B) 
IF (A.GT.B) GO TO 170 
B = B-A 
GOTO 180 
A = A-B 
CONTINUE 
GO TO 120 



120 



170 

180 



190 



. . . GCD(X.Y) 

RETURN 

END 



A = B 



Listing 3: FORTRAN function to compute the greatest common divisor of 
two integers. 



Pascal's Namesake 

Blaise Pascal (1623-1662), one of the foremost famous French 
mathematicians, developed the Pascal theorem of projective geom- 
etry at the age of 16. One year later he started developing a calculat- 
ing machine. He completed the first operating model in 1642 and 
built 50 more during the next ten years. In 1654 he produced two 
papers establishing the foundations of integral calculus and of prob- 
ability theory . 



The Pascal greatest common divisor (GCD) 
function has all of these elements in an 
appropriate place in the source code. Pascal 
allows comments, delimited with braces, 

J and I , to be freely inserted any- 
where a blank can be inserted. 

We can conclude that for each Pascal 
language statement there is a corresponding 
flowchart element, and vice versa. Therefore, 
one could easily flowchart any algorithm 
just from its Pascal listing. Compare the 
Pascal program in listing 1 to the FORTRAN 
and BASIC programs in listings 2 and 3. 
They are fundamentally identical, but all 
of the statement numbers and GOTOs in 
the FORTRAN and BASIC versions obscure 
the logic. You might maintain that, for so 
simple an example, there is no advantage for 
Pascal. One could flowchart the greatest 
common divisor (GCD) algorithm just from 
the BASIC listing. Of course you could, but 
how about flowcharting that 1200 line 
FORTRAN headache you wrote a year ago 
that has returned to haunt you? 

Data Representation in Pascal 

Pascal has several flexible forms of data 
representation. A variable can be defined as 
a scalar (single value) or a structured type. 
The different scalar types are: real, integer, 
character, Boolean, and user defined or 
enumerated. The structured types include 
arrays, records, sets and files. 

Users can define their own scalar types by 
enumeration. For example, in a traffic 
control program, there might be a variable 
called signalcolor which has a value of 
yellow, green or red. Or, in a microwave 
oven program, there might be a variable 
called temp which represents the cooking 
level specified. These concepts are repre- 
sented by the following Pascal declarations: 



172 



August 1978 © BYTE Publication! Inc 



type color = (red,yellow,green); 

cooking level = (warm,defrost, simmer, 
roast,reheat, 
maxpower); 
var signalcolor: color; 
temp: cooking/eve/; 

In this example the type declaration describes 
the user defined types and the var declara- 
tion specifies variable names and their 
associated type. 

Another innovation in Pascal is the ability 
to specify a subrange of a scalar type. For 
example, if the variable count is to be an 
integer between 1 and 10, the declaration 
would be: 

var count: I. .10; 

To further demonstrate these features, a 
BASIC program that would benefit from 
Pascal data representation is next explored. 

Mastermind Codebreaker Example 

The Mastermind codebreaker algorithm I 
have chosen for this exercise was presented 
by WL Milligan in the October 1977 BYTE, 
pages 168 thru 171. His BASIC version is 
reproduced in listing 4. A Pascal translation 
is presented here in listing 5. Let us compare 
the two. 

The first 15 lines of the Pascal version 
correspond to lines 10 to 45 in the BASIC 
version. These are the type declarations and 
the global variable declarations. These global 
variables can be referenced from within any 
procedure. The type declarations define new 
variable types such as: 



type colors 



row 
eval 



(colorless, red, blue, 
brown, green, yellow, 
orange, space); 
array [I. .4] of colors; 
record 

black, white: 0. A 

end; 



This means that a variable of type colors has 
a value equal to one of these enumerated 
items. A variable of type row is an array of 
four colors. The type eval represents a code- 
maker's response to a guessed row. What 
does this represent in the game? This re- 
sponse is the number of exact color and 
position matches (black key pegs) and the 
number of out of position color matches 
(white key pegs). The codemaker responds 
with between and 4 black and white key 
pegs. The type eval in the Pascal version 
accurately models this: a record consisting 



■BLUE 1 . 'GREEN' , "YELLOU" 



10 REM MASTER MIND ■CODEBREAKER 

20 REM CODED IN RT-11 BASIC 

30 RANDOMIZE 

40 DIM R»(9f3) fS<9f1> 

IS DIM A»(«) iB«<3>fC*<3) fD»(3) 

SO REM INITIALIZATION 

60 FOR J=0 TO 6 

70 READ A»(J> 

80 NEXT J 

90 DATA 'RED 

100 LET L0=0 

110 LET L1=0 

120 LET L2=0 

130 LET L3=0 

140 PRINT -MASTER MIND CODEBREAKER" 

145 PRINT 'PLEASE BE PATIENT. SOMETIMES I 

1.50 PRINT -WHICH VERSION (1 OR 2) "! 

160 INPUT V 

170 LET U»U+5 

ISO REM ASSIGN COLORS AT RANDOM FOR ROU 1 

190 FOR J = TO 3 

200 LET R$<OfJ>=A«<INT<V*RND<J>>> 

210 NEXT J 

220 REM START MAIN PLAY OF GAME HERE 

230 REM I IS THE ROU COUNTER 

240 FOR 1=0 TD 9 

245 PRINT 

250 PRINT -MY MOVE FOR ROWI + 1' IS - 

260 PRINT R«<IfO>fR»<If1>fR*<If2) fR*<If3) 

270 PRINT "HOW MANY BLACK PEGS "I 

2B0 INPUT S(IfO) 

290 IF S(I>0)<>4 THEN 320 

300 PRINT -THANKS FOR THE GAME" 

305 PRINT 

310 GO TO B70 

320 IF S(IrO)<>3 THEN 360 

330 LET S(If1)=0\REM IF 3 BLACKS THEN WH 

340 GO TO 3B0 

360 PRINT -HOU MANY WHITE PEGS ■ ! 

370 INPUT S(IfI) 

380 REM GENERATE HYPOTHESIS 

390 FOR I0=L0 TO 0-1 

400 FOR I1=L1 TD V- 1 

410 FOR I2 = L2 TD V-l 

420 FOR I3=L3 TO U-l 

430 LET Dt(0)=At(I0) 

440 LET D«(l)=At(Il ) 

450 LET D*(2>=At(I2) 

460 LET D«(3)=A«(I3) 

470 REM CHECK ALL ROUS FROM FIRST TO CURRE 

490 FOR R-0 TO I 

500 FOR .1=0 TO 3 

510 LET C*(J)=R«(R 

520 LET B*(J>=D*(J 

S30 NEXT J 

540 REM USE ROW EVALUATION SUBROUTINE TD CI 

550 REH HYPOTHESIS AGAINST EACH ROU 

S55 LET N=0\LET M=0 

560 GOSUD 910 

570 REM CHECK FOR AGREFMENT OF BLACK 8 WHITE COUNT 

580 IF NOSfRvO) THEN 700 

590 IF M .S(RfI) THEN 700 

600 NEXT R 

610 REM MAKE SURE THAT HYPOTHESIS ROW DOES 

420 LET Z=0 

630 FOR .1 = TO 

640 IF R*<0f.J) 

650 LET Z = 7 + l 

660 NFXT J 

670 IF Z = 4 THEN 

690 GO TO 820 

700 NEXT 13 

710 NEXT T2 

720 NEXT 1 1 

730 NEXT 10 

740 PRINT 

750 FRINT -COI 

760 GO TO H70 

770 LET I 0=10 

780 LET I 1=11 

790 LET 1.2=12 

800 LET I 3=13+1 

810 REM DO NOT RECHECK ELIMINATED POSSIBILITIES 

B20 REM ASSIGN NFXT ROU 

H30 FOR .1 = TO 3 

S40 LET R»( 1 + 1 .J)=D»<J) 

845 NEXT J 

850 NEXT I 

860 PRINT -I AM STUMPED — YOU WIN 1 

F170 PRINT "ANOTHER GAME ") 

B80 INPUT R* 

890 TF Rt=-Y- THEN 150 

900 STOP 

910 REM SUBROUTINE TO EVALUATE RESPONSE 

920 REM COUNT BLACKS FTRST 

930 FOR .11=0 TD 3 

940 IF C$(Jl)OB«(Jl ) THEN 960 

950 LET N=N+I 

960 NEXT J I 

970 REM NOW COUNT WHITES 

9B0 FOR J1=0 TD 3 

990 FOR J2=0 TO 3 

1000 IF J1=J2 THEN 1080 

1010 IF C*< Jl >=B*( II > THEN 1080 

1020 IF C»(J2)=Bt(.J2) THEN 1080 



WHITE" f -SPACE" 



TAKE A FEW MINUTES ON MY MOVE" 



NT FOR CONSISTENCY 



HECK CONSISTENCY OF 



NT DUPl TCATF ROU 1 



D'KJ) THEN 460 



700 



HAVF REACHED AN IMPASSE IN MY 
I II YOU HAVE MADE AN ERROR'' " 



1.030 IF C*<J1)< 

1.040 LET M = M+1 

1050 LET B*<J2) 

1070 GO TO 1090 

10B0 NEXT J2 

1090 NEXT .11 

1 100 RETURN 

1110 STOP 

2000 END 



■8*CJ2) THEN 1080 



■X'\REM DUMMY WRONG VALUE 



Listing 4: Codebreaker 
portion of W Lloyd Milli- 
gan Is Mastermind game 
written in BASIC. The 
program appeared origin- 
ally in the October 1977 
BYTE, pages 169 and 170 
(see page 1 76 of this issue 
for a description of 
Mastermind). Compare 
this with the Pascal version 
in listing 5. 



August 1978©BYTE Publications Inc 173 



Listing 5: Pascal version of the Mastermind BASIC program in listing 4. 

program mmJ(inpHt,imtftHt); 

label X~0; 

type colors = (colorless, red. hluf, hroicn. ijreen. ijelloic, oranife. space); 
roic = array | /...( I of colors; 
enil = record 

Mark, ichite: o. ..', 
end; 



ccalltnti 
roics; 
Hit m?: 

color: 
mimic: 
lost: 
rcrsioii: 

i: I . . :>; 



ins: array | / . . I<>\ of ccol: 

array | / . . l<i] of roic; 

array [colors] of packed array | / . .11] of clmr 

array \o. . T] of colors: 
roir: { First hypothesis checked } 
roic; { Last hypothesis formed } 



./■• I. 



nia.rcolar: oroni/c 
cli: char: 



. space; 



procedure initialization; 

var c: colors; i: l . ..', 
begin 

na)nc\ red] :■ 

na»ic\lilnc] y- 

niu)ic]lirnicii] :- 



'RED 

■blue 

'BROWN 



nonic\iirrcn] :- 
Ha iuc]jtclloic] : 
iiaini\orini(ic] : 
naiiic\spacc\ : 



'GREEN ': 

= 'YELLOW 

= 'ORANGE' 

'SPACE ' 



for c ;= colorless to npiirc do 

coloi\ord(cl] := c; 
for i := I to J, do 

rcdroit\i] := rcil; 
lost .= rcilroic; 

icritchii' MASTERMIND CODEBREAKER'); 

icritchiC PLEASE BE PATIENT. SOMETIMES I TAKE A FEW): 
imtchiC MINUTES ON MY MOVE. WHICH VERSION (1 or 2)?'): 
mill (ri'rsioii): 

ina.i'color := color\ccrsion+, r t]: 
{ Assign colors at random for row 1 } 
for / .- / to 4 do 

roics] l.i] := color] trttiic((rcrsio)i+. r >)*ramli>ni(o.tl)+ 1 .a) ] 
end { Of Initialization Routine ) : 



procedure clicckconsistancij thiii>othcsis,j)rcciinisroic: roic; 

var c: ccal): 
label louii; 
vtarjlJJ: t . .4; 
begin 

{ Count blacks first } 

c.hlack := 0: 

for jl := / to i do 

if hiipollwsis]jl] = prceioitsronijl] then 
e. black :- c.hlack + 1; 
{ Now count whites } 
c.irhilc := (>; 
for jl .= / to 4 do 
begin 

for ./J . - / to 4 do 
if (jlfM and 

(liiJl>othcsis[jl] * f>reri<»isroic]jl]) and 
th\jpothcsis[j2] t ))r<'rioiisroie]j2\) and 
(hijpothcsis\jl\ - prcriausrou\jJ]) then 
begin 

e. ichite := e. ichite + 1; 
{ Dummy wrong value } 
precioiisroic]jJ] := colorless; 
goto 1090 { Exit J2 loop } 
end; 



1090: 



end 



end { Of Check Consistancy Procedure } 



of two components, black and white, each 
an integer between and 4. 

The variable version represents the ver- 
sion number, either 1 or 2. The 10 possible 
rows of code pegs in the game are recorded 
in the Pascal structure declared as: 

var rows: array [I. . 10] of row; 

Note that the careful selection of data 
representation makes the program much 
more clear and concise. The ability to deal 
with structures as a whole instead of just 
their elements tends to tighten up the logic 
of the program. For example, the BASIC 
lines: 

820 REM ASSIGN NEXT ROW 
830 FOR J=0TO3 
840 LETR$(I+1J)=D$(J) 
845 NEXT J 

are functionally equivalent to the Pascal 
assignment: 

rowsfi+i J ;= hyp lassign next row} 

Also, the BASIC lines: 

610 REM MAKE SURE THAT 
HYPOTHESIS ROW DOESN'T 
DUPLICATE ROW 1 

620 LET Z=0 

630 FOR J=0TO3 

640 IF R$(0,J)OD$(J) THEN 660 

650 LETZ=Z+1 

660 NEXT J 

670 IFZ=4THEN 700 

690 GO TO 820 

are functionally equivalent to the Pascal 
statement: 

if hyp Orowsf! J then goto 820 

Mr Milligan's BASIC version is well 
written and well structured. It contains three 
key routines: initialization (lines 50 to 210); 
generate hypothesis (lines 380 to 845); and 
evaluate response (lines 910 to 1100). How- 
ever, due to the inexpressiveness of BASIC, 
it takes careful study, even of this well- 
written BASIC program, to recognize its 
structure. On the other hand, looking at the 
Pascal version of the same algorithm, the 
expressiveness of the language shows the 
structure at a glance. Similarly, the use of 
meaningful variable names and Pascal record 
structures makes the data representation 
readable. Table 1 describes which variables 
in the Pascal version are used in the same 



174 



August 1978 © BYTE Publications Inc 



context as variables in the BASIC version. 

As careful as you are when coding BASIC, 
bugs are bound to creep in. For example, in 
the BASIC version (listing 4), lines 610 
thru 690 are unnecessary. Additionally, 
there is no path through lines 770 to 810. 
Coding errors rarely creep into Pascal 
programs because the compiler enforces 
variable declarations and type agreement. 
For example, evaluations[5j := rowsfSj is 
illegal because they are not type-compatible. 
Also c := brown-red is illegal because arith- 
metic is undefined for our user defined 
colors type. And, version := 3 is illegal 
because the value 3 is outside the legal range 
for version. 

Other Pascal Attributes 

We have looked at some of the note- 
worthy features in Pascal. There are also the 
powerful features of block structured scope 
of names, recursion and dynamic allocation 
of storage. Pascal is known as a very "safe" 
language because it optionally has extensive 
compile and run time type checking including 
type compatability, subrange bounds and 



BIBLIOGRAPHY 

Introductory books on Pascal: 

Bowles, K L, Microcomputer Problem Solving 
With Pascal, Springer-Verlag, New York, 1977. 

Grogono, P, Programming in Pascal, Addison- 
Wesley, Reading MA, 1978. 

Schneider, G et al, An Introduction to Pro- 
gramming and Problem Solving With Pascal, 
Wiley, New York, 1973. 

Wirth, N, Systematic Programming —An Intro- 
duction, Prentice-Hall, Englewood Cliffs NJ, 
1973. 

Other books: 

Dahl, J, Dijkstra, E W and Hoare, CAR, 
Structured Programming, Academic Press, New 
York, 1972. 

Jensen, K and Wirth, N, Pascal User Manual 
and Report (second edition), Springer-Verlag, 
New York, 1976. 

Wirth, N, Algorithms + Data Structures = Pro- 
grams, Prentice-Hall, Englewood Cliffs NJ, 
1976. 

The Pascal Newsletter is published quarterly by 
the Pascal Users Group for $4 per year. Contact 
Andy Mickel, University of Minnesota Computer 
Center, 227 Exp Engr, University of Minnesota, 
Minneapolis MN 55455. 



function JhriitltHiiollirsix: Boolean: 
label SMK 
var i I .iJ.i-l.i.'i: colurn; 

r: II. ..'/; 

hyp: rmr: 

mill: mil: 

r'mhlr: BlIolcUH: 

begin ( forming Hypothesis } 
riiihl, ■= true: 

for il := htst\ 1 1 to musrolor do 
for U := lustlJ] to muscular do 
for hi := Iust\.i\ t<i muscular do 
for i.'i := lust\.',\ tii muscular do 
begin 

lust :- retlrutr; 

li!/l>\l\ := il: li!ii>\J\ := iJ: Iijo>\-I\ := '•>'.' hliAi] := H: 

{ Check all rows so far for eonsistancy } 

r := II; 

repeat 

/■:= ;■ + I: 

elirrkeintsistti lie i/(ti mi.ru irs\ r\.eenl I ); 
until {irul i x i'riiliiiiliniis\r\) or (r = i); 
if mill = cntlnutianx\r\ then 

{ Make sure that hypothesis doesn't duplicate row 1: 
if it hasn't then we have a viable hypothesis } 

if //;/// * ruwx\ 1 1 then goto HJO; 

{ Otherwise, keep searching.. ..NEXT i4, i8. i2.il } 
end; 
riuhlc = fiilxe; { No viable hypothesis left } 

KM): if riuhlr then 

begin { Do not recheck eliminated possibilities ( 
Inst := hyp; 

ni«'.s[f + /| .= hyp | Assign next row ) 

end 
else begin 

icritehiV I HAVE REACHED AN IMPASSE. '): 
irrileln (' COULD YOU HAVE MADE AN ERROR 9 ') 
end; 
fiirmliypothciin := riuhlr | Return with function value | 

end ) Of Form Hypothesis Procedure ) : 



begin ( Mastermind Codebreaker } 

repeat 

initialize: 

( Start main play of game here ) 
for / .'= / to H do 
begin 

irriteln; icritc ("MY MOVE FOR ROW'.i: 2.' is'): 
for j := / to 4 do 

irrite ()ia»iiiruies\i.j\]: X); irriteln; 
uriteln CHOW MANY BLACK PEGS?'); 
nail (eriiliiatiii>is\ i].liliiek); 
if ei'alitatio>is[i\,l)luck = i then 
begin 

irriteln ('THANKS FOR THE GAME'); goto H70 
end; 
if eealiiatii»is[i\.t>lnek = A then 

erillttatioHs[i\.tchltl' ,= II 

else begin 

irriteln (' HOW MANY WHITE PEGS?'); 
read (evaluationii.i].u'hite) 
end; 
if not form h yputhen is then goto X7l) 
end; 

irritcln (' I AM STUMPED YOU WIN!'); 

S7i): repeat 

irritcln (' ANOTHER GAME?'); read (cli) 
until (eh = 'Y')or(ch - 'N'J 
until eh - 'N' 
end I Of Main Program ) 



August 1978 © BYTE Publications Inc 



175 



array index bounds. Pascal has many other 
dam representations not illustrated here, 
such as sequential files, arrays, pointers and 
sets. I can't begin to explain all of these 
features here, but you don't have to under- 
stand all of them before you write your first 
Pascal program. 

The main selling feature of Pascal is that 
properly developed programs are extremely 
easy to debug. Once you get a clean compile, 
the program usually runs! Why? Because the 
algorithms are expressed clearly and natural- 
ly. The range of all control variables are well 
specified and can be enforced at run time. 
The data types all agree and are appropriate 
to the problem. The program is readable - 
data types mean what they say — and it is 
therefore maintainable. Pascal encourages 
the methodical and systematic development 
of algorithms, an important structured 
programming method. 

I hope this survey of Pascal has whet your 
appetite for the language. If so, read more 
about Pascal in this issue, then pick up any 
of the books in the bibliography and dive in! 

Pascal is a rich and fertile language that 
emphasizes the expression of algorithms and 
data representation naturally and clearly. 
When will your microcomputer speak 
Pascal?" 



BASIC Version 


Pascal Version 


Lines 220 to 270 
and 850 to 900 

1 

DIM R$(9,3) 

R S 

DIM S(9,1) 


program mm2 

i: 1 . .9; j: 1 . . 4 

rows: array 11 . . 10] of row 

ch: char 

evaluations: array [1 . . 10] of eval 


Lines 50 to 210 

J 

DIM A$(6) 

V 


procedure initialization 

i: 1 . . 4; c: colors 
name: array [colors] of string 
color: array [0 . . 7] of colors 
version: 1 . . 2 


Lines 380 to 845 

10,11,12,13 

L0,L1,L2,L3 

V 

DIM A$(6) 

DIM DS(3) 

R 

J 

N,M 


procedure formhypothesis 

H,i2,i3,i4: colors 
red row, last: row 
maxcolor: orange. . space 

hyp: row 
r: . .9 

evall: eval 


Lines 910 to 1100 

J1.J2 

DIM CS(3) 
DIM BS(3) 
N,M 


procedure Checkconsistency 

]1,j2: 1..4 
hypothesis: row 
previousrow: row 
e: eval 



Table 7 : A comparison of the variables used in the two versions of the Master- 
mind game (see listings 4 and 5). 



What Is Mastermind? 

One of the most interesting con- 
ventional (ie: noncomputer) games on 
the market is "Mastermind," distri- 
buted by Invicta Plastics, Suite 940, 
200 5th Av, New York NY 1 001 0, and 
available in many local stores. Master- 
mind involves deductive logic, hypo- 
thesis testing and probabilistic infer- 
ence. In Mastermind, the players take 
turns as "codemaker" and "code- 
breaker.". The codemaker sets up a 
concealed row of four colored pegs 
from a set of Red, BLue, BRown, 
Green, Yellow and Orange pegs. It is 
acceptable to use the same color or 
colors more than once. In version 2, a 
more advanced game, empty Spaces 
are also permitted. 

To challenge the computer program 
you are the codemaker. Write down a 
code. A row of four colors invokes the 
codebreaker computer program. It will 
take up to ten tries (rows) to discover 



the secret arrangement of colors in the 
concealed row. After printing each 
guess, the program will prompt you 
for the number of black and white key 
pegs. 

The number of black pegs corres- 
ponds to the number of correct colors 
in correct positions. An important rule 
is that no position in the try is 
counted more than once. 

When evaluating the program's try 
it is necessary to count black and 
white pegs carefully. If you make a 
mistake counting the number of exact 
or inexact correspondences, the pro- 
gram may exhaust all possible arrange- 
ments without finding a possible valid 
try. In this event the message: 

I HAVE REACHED AN IMPASSE. 
COULD YOU HAVE MADE AN ERROR? 

is printed. 



(Adapted from W Lloyd Milligan's article, "Mastermind," October 1977 BYTE, page 168.) 



1 76 *u«ust 1978 S BYTE Publications Inc 



New Power Supply Dedicated to Minifloppy Format 



LS-100 Series Designed for Electronic 
Troubleshooting 




A new multiple output power supply, 
the CP-249, is, according to the manu- 
facturer, the first power supply to be 
dedicated to the 5.25 inch floppy disk 
format. 

The CP-249 provides dual outputs of 
5 V at 0.7 A and 12 V at 1.1 A steady 
state, with 1.7 A peak. The 5 V output 
includes overvoltage protection. Stan- 
dard features include 115/230 VAC 
±10% AC input capabilities ±0.05% 



line and load regulation, and full pro- 
tection against short circuit and over- 
load. Maximum ripple is 3.0 mV peak 
to peak, while transient response is 
30 ms for a 50% load change. Operating 
temperature is rated at 0°C to +50°C at 
full ratings, derated to 40% at 70°C. 

Single quantity pricing is $39.95. The 
unit is available from Power-One Inc, 
Power One Dr, Camarillo CA 9301 0." 

Circle 61 1 on inquiry card. 



New Tandy Computers 1978 Catalog 

fTandiiTcariPUT Ens) 



1B7BCATALUG 




A microcomputer mail order catalog 
has just been issued by Tandy Com- 
puters, Dept R7, POB 2932, Fort Worth 
TX 76101. The 52 page, 4 color catalog 
details a full line of popular brand micro- 
computers and accessories, software 
packages, parts and literature currently 
in stock. Kits and fully assembled micro- 
computer systems listed in the catalog 
range in price from several hundred 
dollars to more than $20,000. Among 
the nationally known brands carried by 
Tandy Computers are Radio Shack's 
TRS-80, the IMSAI 8080, Vector 1 and 
1 + , Xitan, Equinox 100, and Poly- 
Morphic System 8813. Copies of the 
new catalog are available by telephoning 
toll free (800) 433-1679 or by writing 
the company." 

Circle 613 on inquiry card. 




The LS-100 series digital signature 
analysis product family provides the 
foundation for LSI and microprocessor 
electronic troubleshooting and repair. 

Verification of correct digital pat- 
terns provides go and no-go testing as 
well as diagnostics. The series provides 
for rapid identification of bad compo- 
nents, printed circuit boards and entire 
systems. Options include remote LED 
signature display, 32 line multiplexer, 
logic probes, enhanced software package 
and stand alone test ability. 

The LS-100 expandable series is 
available in S-1 00, LSI-1 1 , or EXORciser 
bus compatible plug ins, ready to go. 
Prices start at $295. Contact Phoenix 
Digital Corp, POB 11628, Phoenix AZ 
85017." 

Circle 612 on inquiry card. 



AVA Introduces New RF Video Adapter 
Line 

AVA Electronics announces the in- 
troduction of their new RF (radio 
frequency) Video Adapter line. It 
features over 40 adapters and accessories 
suitable for home and professional 
video applications. The adapters cover 
phono, BNC, UHF and F connectors. 
The free #478 catalog sheet describes 
these products in detail and is available 
from AVA Electronics Corp, 242 Pem- 
broke Av, Lansdown PA 19050." 

Circle 614 on inquiry card. 



August 1978SBYTE Publications Inc 177 



What's New? 



SOFTWARE 



File Management System for Floppy 
Disk Microcomputers 




KSAM80 is a file management system 
designed specifically for floppy disk 
microcomputer systems. It was originally 
developed under Zilog's Z-80 OS 2.0 but 
can be implemented in many existing 
microcomputer operation systems. 

KSAM80 was developed for applica- 



tions such as inventory control, reserva- 
tion systems, library systems, accounts 
receivable and bill of materials process- 
ing. Random storage and retrieval of rec- 
ords is based on the contents of a user 
defined data field within the record 
which is called the key. The key must 
be unique for each record and can be 
any string up to 255 characters long. 

KSAM80 also supports sequential 
access of records starting at any point 
within a file, random access by partial 
key and random access by relative rec- 
ord number. Sequential and random 
access commands can be intermixed 
freely. 

Space is automatically allocated to 
the file when records are added and re- 
claimed when records are deleted so that 
files are self-reorganizing and any num- 
ber of files can be processed simultan- 
eously provided that sufficient buffer 
storage is available. 

A number of utility programs are 
available as part of the KSAM80 pack- 
age. For additional information write to 
EMS, 3645 Grand Av, Suite 304, Oak- 
land CA 94610.- 

Circle 532 on inquiry card. 



A New Macroassembly Language 
for 8080 and 8085 Microprocessors 

SMAL/80 is a compiled, structured, 
macroassembly language for 8080 and 
8085 microprocessors that requires only 
7 K bytes of memory. SMAL/80 state- 
ments are written in a symbolic notation 
resembling PASCAL and PL/M that sim- 
plifies the writing of assembly language 
programs. It incorporates the basic struc- 
tured programming constructs, the do- 
end, if-then-else, and loop-repeat, which 
may be combined with and/or nested 
within each other without limit to form 
highly complex statements. 

The package includes a 2 K byte 
macropreprocessor written in SMAL/80. 



The macropreprocessor permits condi- 
tional expansion of statements, and un- 
limited nesting of macros. 

Also included in the SMAL/80 pack- 
age is a translator program that allows 
one to convert any 8080 or 8085 pro- 
gram written in standard Intel mnemonics 
into SMAL/80 without the constructs. 

SMAL/80 is being offered initially in 
CP/M and Isis I disk formats; the price, 
including documentation, is $75. This 
software is available from Chromod 
Associates, POB 3169, Grand Central 
Station NY 10017. ■ 

Circle 535 on inquiry card. 



Character Oriented Processing System 
for the Z-80 or 8080 Printer 

The Electric Pencil II is a character or- 
iented processing system. Text is entered 
as a continuous string of characters and 
is manipulated as such, allowing the user 
freedom and ease in the movement and 
handling of text. 

Features of the Electric Pencil II in- 
clude CP/M compatibility, disk operating 
system which supports two disk drives, 
file management, disk storage and retrie- 
val, print formatting multicolumn print- 
ing, print value chaining, page at a time 
scrolling, bidirectional multispeed scroll- 
ing controls, subsystem with print value 
scoreboard, automatic word and record 
number tally end of page control. 

Hardware must include a micro- 
computer using the 8080 or Z-80 micro- 
computer, printer, video display (VDM- 
1, VII or SOL) CP/M supported disk 
system or North Star minifloppy disk or 
cassette interface (Tarbell or SOL). 

The Electric Pencil II is available on 
CP/M. The price for the standard printer 
version is $225 and the Diablo printer 
version is $275. For further information, 
contact Michael Shrayer Software, 3901 
Los Feliz Blvd, Los Angeles CA 90027." 

Circle 536 on inquiry card. 



Super Startrek 

Super Startrek requires a terminal 
equivalent to the Soroc IQ120 or the 
ADM-1 (with screen protect, screen clear 
and cursor control) with 48 K bytes of 
memory. 

A sector map, status display and ga- 
lactic map are placed on the screen in 
protected areas. It includes star bases, 
the USS Enterprise, the Faire Queen, 
Klingons, command Klingons and cloaked 
Romulans. 

Examples of operational commands 
are WAR (warp: sets warp factor for 
moves), MOV (move: direction and dis- 
tance), IMP (impulse engines: allow one 
sector moves), and ABA (abandon ship 
to Faire Queen). 

Super Startrek is written in North 
Star BASIC with complete, compre- 
hensive playing instructions. The price 
is $51 and the software is available from 
Aaron Associates, POB 1720A, Garden 
Grove CA 92640." 

Circle 533 on inquiry card. 



Business Software 
In North Star BASIC 

Available now is a series of three 
business software packages in North 
Star BASIC. Features of Micro-Base 
Inventory are said to include multiple 
key ISAM (indexed sequential access 
method) disk structuring; inquiry keys 
by catalogue number, manufacturer, or 
item description; multiple selling price 
capability for each item; formatted 
screen handling; full retail or cost 
extension reporting of items on hand 
or on order or sold. The second module, 
Micro-Base Accounts Payable, is de- 
scribed as a fully featured data base 



management system, with real time 
inquiry for file information. Features of 
this system are multiple key ISAM disk 
structuring, inquiry keys by vendor num- 
ber, vendor name, voucher number; 
formatted screen handling; paid voucher 
history file; bank account reconciliation 
assistance; cash requirements forecasting. 
Micro-Base Accounting system is said to 
include payroll, time and material billing, 
purchase ordering, accounts receivable, 
accounts payable, inventory handling, 
and general ledger and financial report- 
ing. The price for these systems is $450 
per module from Computertex, POB 
66907, Houston TX 77006." 
Circle 537 on inquiry card. 



APL Colloquium Series 

Think Inc, a company which de- 
velops and markets APL application 
packages, is offering a monthly collo- 
quium series on APL topics. Topics 
such as "A Proposed Standard for the 
Interchange of APL Workspaces" and 
"The Use of APL for Systems Work" 
have been discussed in previous series. 
Think Inc plans to continue the collo- 
quium series until the summer. For 
further information contact Brooke 
Tompkins, Think Inc, 310 E 46th St, 
New York NY 10017." 

Circle 534 on inquiry card. 



178 



August 1978 © BYTE Publications Inc 



5 PLETE SATISFACTION IS OUR GUARANTEE YOUR COMPLETE SATISFACTION IS OUR GUARANTEE YOUR COMPLETE SATISFACTION 



Huge Discounts! 

HOBBY WORLD ELECTRONICS 



Savings up to 70% on m; 
kits. For complete IC 



•and IC parts and computer 
?s write lor our catalog 



KITS 

| WAMECO S-100 P.C. Boards 
8K RAM 
8080 CPU 
12-Slot Mother 
Board 
ITHACA AUDIO S100 P.C. Boards 
8K RAM 
Z-80 CPU 
2708/2716 EPROM 

Boards (New) 
W/W Prototype 
Board (New) 
| SOLID STATE MUSIC S-100 Kits & 

Bare Boards 
IMB6A8K Kit 
ISTATIC RAM Bare Board 
|MB7 16K STATIC RAM 
Kit 435.00 

Bare Board 25.95 

IMB8 8KA6 K EPROM 
USES 2708's 
Kit Less EPROMs 75.95 










-<%&*&XQ* 



74L$00 TTL 



74LS00 

74LS02 

74LS04 

74LS08 

74LS10 

74LS14 

74LS20 

74LJ21 

74LS22 

74L$30 

74LS32 

74LJ37 

74LJ38 

74LS42 

74LS47 

74LJ48 

74LS73 

74LJ74 

74L-J75 

74LS76 

74LS86 

74LS90 

74LJ92 

74LS93 

74LJ109 

74LS112 

74LS113 

74LS114 

74LJ125 

74LJ126 

74LS132 



.21 
.21 
.24 
.21 
.21 
.85 
.23 
23 
23 
23 
.30 
.31 
.31 
60 
.75 
.72 
35 
.35 
.53 
.37 
36 
52 
52 
.52 
36 
.36 
.36 
.36 
.46 
46 
75 



74LS138 

74LJ139 

74LS151 

74H153 

74L1154 1.00 

74LJ157 .62 

74LJ160 

74LS161 

74LS162 

74L$163 

74H164 

74LJ174 

74LS175 

74LS190 

74LJ191 

74LS192 

74LJ196 

74LS197 

74LS221 106 

74LS257 .71 

74LS258 

74LS266 

74LS283 

74LI365 

74LJ366 

74LJ367 

74LS368 

74LS386 

81LS95 

81LS96 

81LI97 

B1LS98 



«# 







3 <f 



KITS 

SOLID STATE MUSIC 

VB1B VIDEO INTERFACE 

Kit 129.95 

Bare Board 25.95 

RF Modulator TV-1 Converts Video 
Output to RF For TV antenna 
terminals, complete Kit 8.95 

NEW FROM CYBERCOM DIV OF SSM 
MB8A-2708 16K EPROM with 

Vector Jump Kit 85.00 

OB-1 Vector Jump & Prototype 

Kit 49.00 

Board 25.95 

1 104 2 + 2 I/O Kit 139 95 

SYNTHESIZER SB-1 MUSIC 
Kit with 

Software 145.00 

IMT-1 



(Continued) 

8080 Machine Languages 

Programming 6.96 

Robots At Your Doorstep 6.95 

I BEGINNERS BOOKS 

Beginning BASIC 9.95 

Home Computer Beginners 

Glossary and Guide 6.95 

Basic BASIC $ 8.95 

Introduction to BASIC 8.95 

Home Computers: 210 Questions 

and Answers 

Volume 2: Software 6.95 

Microcomputer Dictionary 

and Guide 19.95 

■ Microprocessor Basics 10.95 

Home Computers : 210 Questions 

and Answers 

Volume 1: Hardware 7.95 

I Understanding Integrated 

Circuits 4.95 

Semiconductor Circuit Elements 6.95 
Fundamentals and Applications 

of Digital Logic Circuits 7.95 



15-Slot Mother 

Board 39.95 

XB-1 EXTENDER BOARD 

Bare Board 8.99 

SSM 8080 MONITOR VI 



ON 2-2708 
ON 8- 1702 A 



47.00 
47.00 



74XX 



MEMORY 
1702A 3.75 

3.75 2708 11.50 

3.50 2716 Tl 22.50 

6.25 21L02 450ns 1.25 
3.85 21 L02 250ns 1.60 
7.95 2114 8.50 

MICROPROCESSOR 



25 Pin— D Sub- 
miniature Solder Tail 
Male 3.00 
Female 3.50 

100 PIN EDGE CONNECTOR, 
msai spacing 3.50 (New) 

TS 



8080A 


11.50 


Z-80 


24.95 


Z-80A 


34.95 


6800 


16.50 





5716 W. Manchester Ave. 

Suite #5 

Los Angeles, CA 90045 

TELEPHONE ORDERS: 
Call (213) 641-4200 



D Send your complete catalog 
quickly. 

□ Please send me the followingj 
items I have listed below: 
Qty. Stock No. Price 




7400 
7401 
7402 
7403 
7404 
7405 
7406 
7407 
7408 
7409 
7410 
7411 
7412 
7413 
7414 
7416 
7417 
7420 
7423 
7425 
7426 
7427 
7430 
7432 
7437 
7438 
7439 
7440 
7441 
7442 
7443 
7444 
7445 
7446 
7447 
7448 
7450 
7451 
7453 
7454 
7460 
7470 
7472 
7473 
7474 
7475 
7476 
7480 
7481 



7482 


.50 


7483 


.62 


7485 


.75 


7486 


26 


7489 


1.75 


7490 


.40 


7491 


51 


7492 


.40 


7493 


.40 


7494 


.60 


7495 


.60 


7496 


.60 


74107 


28 


74109 


.22 


74121 


.29 


74122 


.38 


74123 


.48 


74132 


.65 


74141 


.70 


74145 


65 


74150 


86 


74151 


.61 


74153 


.61 


74154 


.95 


74157 


.,55 


74161 


.55 


74163 


.55 


74164 


.85 


74165 


.90 


74170 


1.69 


74173 


1.10 


74174 


.85 


74175 


.75 


74176 


69 


74177 


.70 


74180 


.65 


74181 


1.75 


74190 


.95 


74191 


.95 


74192 


.79 


74193 


.80 


74195 


.49 


74221 


86 


74251 


1.00 


74365 


62 


74366 


62 


74367 


.62 


74368 


.62 



Postage/Handling 



SI. 50 



Satisfaction 100% Guaranteed 

California Residents Add 6% 
Sales Tax 



Note: Minimum Order $10.00, 5% Discount over $100.00 on I.Cs only. 



State- 



-Zip- 



NEW 
1978 

IC MASTER 



Over 40,000 
IC's listed. 
Over 2,000 
pages. 

Retail Value 



Updated every 
90 days. 



$55.00 $39.99 

Check catalogue for more 
listings on linears, voltage 
regulators, resistor books, 
IC sockets and more. 



Circle 170 01 



Circle 25 on inquiry card. 



ATWOOD ENTERPRISES 



KITS 



$ 79*95 4K RAM Available assembled and tested $89.95. 

$ I 29*95 4K PROM Bipolar 512x8 Proms 93448/634 1 . 

$ 1 49.95 8K EPROM Needs only 4K space 2716. 

$ 59*95 DIGITAL I/O 8 parallel ports plus 16 interrupts. 

> 99*95 ANALOG IN 32 inputs, 8 bits, 100 microseconds. 



DID YOU 
KNOW . . . 



i 



BIG SALE 



I 1 each board: 



I 

~l 

I 

H 
I 

J 



Digital I/O 

Eprom programming 

8K Eprom Board (without 2716's) 

REGULAR PRICE 
$139.85 



$ 49.95 PROM PROGRAMMING can B cT P y 4 to 3 | AUGUST ONLY 



$129.95 SERIAL I/O 



7 serial ports, fully software controlled. 
To 500 baud. 



"1 

I 



$100.00 



Extra zero insertion force sockets $5.00 



MOTHER BOARD 

8 SLOT 44 PIN BUS 

50 Pin Edge Connector 

Mother Board $20.00 ea 
Connectors 2.50 ea 

Card guides for above $10.00 per set. 



MAKE CHECK OR MONEY ORDER PAYABLE TO: 

Kathryn Atwood Enterprises 
P.O. Box 5203, Orange. CA 92667 

Discounts available at OEM quantities. For orders less than $25 total, add $1 .25 
for shipping. California residents add 6% sales tax. Estimated shipping time 2 
days ARO with money order. For checks allow 7 days for check to clear. 



Beckian Enterprises All Prime Quality — New Parts Only — Satisfaction Guaranteed 



EPGE CARP CONNECTORS : GOLD PLATEV . 

BODY: Non brittle, solvent resistant, high temperature G. E. Velox. The finest elec- 
trical properties available. CONTACTS: Bifurcated Phosphor Bronze. Gold over 
Nickel. 

ALTAIR TYPE : Contact Ctrs. .125: Row Spacing, .140 
50/100 Dip Solder $4.00 ea. 5 pes. 

IMSAI TVPE: Contact Ctrs. .125: Row Spacing, .250 



$3.80 ea. 



50/100 
50/100 



Dip Solder 
Wire Wrap (1 Turnl 
(3 Turnl 



$4.25 ea. 
$4.25 ea. 



5 pes. 
5 pes. 



IMSAI Card Guides .25 per pair to IMSAI Prices 

Note Also good for CROMEMCO. 

CITHER CONNECTORS AVAILABLE 
.100" Contact Ctu: .140" Rom Spacing . 



15/30 Solder Evelet 

22/44 Dip Solder 

22/44 Wire Wrap (3 Turnl 

40/80 Wire Wrap 13 Turn} 



$2.30 ea. 
$2.75 ea. 
$2.50 ea. 
$4.00 ea. 



5 pes. 
5 pes. 
5 pes. 
5 pes. 



$4.00 ea. 
$4.00 ea. 



$2.10 ea. 

$2.40 ea. 

$2.20 ea. 

$3.70 ea. 



Note : Wine. OJnap Spacing ih .200" [Row Spacing] 
156" Contact Ctxs: .140" Roto Spacing . 



18/36 Dip Solder 

22/44 Dip Solder 

15/30 Wire Wrap (3 Turnl 



$2.25 ea. 
$2.50 ea. 
$2.00 ea. 



5 pes. 
5 pes. 
5 pes. 



.156" Contact Ctu: .200" Row S)Xicing . 



22/44 
36/72 
15/30 
18/36 
36/72 
43/86 



Wire Wrap (3 Turns) 

Wire Wrap (3 Turns) 

Dip Solder 

Dip Solder 

Dip Solder 

Dip Solder 16800) 



$2.80 ea. 
$4.00 ea. 
$1.90ea. 
$1.95ea. 
$4.00 ea. 
$4.90 ea. 



5 pes. 
5 pes. 
5 pes. 
5 pes. 
5 pes. 
5 pes. 



$200 ea. 
$2.25 ea. 
$1.80 ea. 



$2.50 ea. 

$3.80 ea. 

$1.65 ea. 

$1.70 ea. 

$3.65 ea. 

$4.75 ea. 



WE ARE YOUR CONNECTOR SPECIALISTS. 

IF VOU V0 NOT SEE THE CONNECTOR HERE THAT 

VOU WEEP, PLEASE WRITE US. IN MOST CIRCUMSTANCES, 

WE CAN SUPPLY IT TO VOU. 



25 PIN PB TYPE SUBMINIATURE CONNECTORS. 



CANNON: Gold Plated. The Best You Can Buy. 



DB25P Male Plug 
D825S Female Socket 
DB 51212-1 Hood. (Greyl 
DB 51226-1A Hood. (Black) 
D 20418-2 Hardware Set 



$2.60 ea. 
$3.70 ea. 
$1.00 ea. 
$1.10 ea. 
$0.80 ea. 



5 pes. 
5 pes. 
5 pes. 
5 pes. 
5 pes. 



$2.25 ea. 

$3.45 ea. 

$0.95 ea. 

$1.00 ea. 

$0.75 ea. 



SAVE: BUY A COMPLETE SET. 



Complete Set includes: 1 pc. DB25P: 1 pc. DB25S: 

1 pc. Hood of your choice Grey or Black. 

1 Set $6.50 ea. 5 Sets $6.25 ea. 

Note: For D 20418-2 Hardware Set, add $0.75 ea. 



270S - PRIME 



SOSOA - PRIME 



(450 r 
$14.00 


S) 
ea. 


$9.40 ea. 




r.c 


SOCKETS: VIP SOLVER 






Low Profile. 
14 pin. & 16 pin. $0.16 ea. 






HEAT SHRINK TUBING 




1/8' 


Shrinks to 1/16" I. D. $0.35 per ft. 

CABLE TIES 

3%" and 5Vi" $0.03 aa. 


WRITE 


FOR LARGER OtlAWTITV VISCOUNTS 






PEALERS WELCOME 



MINIMUM ORPER: $10.00: Add $1.00 &0K 
i Slipping. OideAi oven $25.00, we pay 
the. & flipping. CaZi&. Reiidenti add 6% 
Tax. NO CO. P. SHIPMENTS. 



Olden Etom: 



Beckian Enterprises 
P.O. Box 3089 Simi, Calif. 93063 



1 80 August 1 978 © BYTE Publications Inc 



Circle 30 on inquiry card. 



FOR ALL CUSTOMERS EXCEPT CALIF. 



21L02 (350ns) 
Static Rams 
120 g $1.00 ea. 



1702A 
E-PROM 
$4.75 ea. 



6502 

Microprocessor 
5 9 $11.00 ea. 



2708 (450ns) 

E-PROM 

8 @ $9.00 ea. 



CALL TOLL FREE 800-421-5809 



21L02 (250ns) 
Static Rams 
100 @$1.25ea. 



Z— 80 A 

Microprocessor 
5 @ $25.00 ea. 



8212 

8 Bit I/O Port 

25 @ $3.00 ea. 



4116 (200ns) 
16K Dyn. Ram 
8 @ $24.00 ea. 



Z-80 

Microprocessor 
5 @ $20.00 ea. 



8224-4 
Clk.Gen.&Dvr. 

25 @$8.75ea 



41 0D (200ns) 
Static Ram 
100@$9.50ea. 



TMS 4044 
(250ns) 

16 (3 $8.95 ea 



4200A (200ns) 
Static Rams 

25 is $10.00 ea. 



7 4 LS3 6 7 
Hex Buffer 
100 @ .7 0? 



74LS368 
Hex Inverter 

100 <=> .70? t 



2513 (5v) 
Character Gen. 
5 @ $9.00 ea. 



49Q1 W. R0$ECRANS, HAWTHORNE. ^A. 90250 



MICROCOMPUTER 



Jltff? 



MICROPROCESSOR'S 

FB 1 S .9 5 

Z8 

Z8 0A 

CDP1802CO 

2650 

AM29QI 

6502 

6800 

1801 

B0OB-1 

B035 

8080A 

8085 

TMS9900TL 



COMPON 

OTHER COMPONENTS 



12.00 
28.00 
19.95 
24.95 
22.95 
11.95 
18.95 
25.00 
9.9 5 
2?.00 
11.95 
27.00 
75.00 



8080A SUPPORT DEVICES 
j.so 

9.00 
1.75 



8212 
8214 
8216 
8224 
8224 
B226 
8228 
823B 
8251 
8253 
8255 
8257 
8259 
8275 
8279 



3.50 
9.95 
3.95 
7.95 
7.50 
9.9 5 
21.95 
21.95 
21.95 
21.95 
75.00 
20.00 



FLOPPY DISC CONTROLLER 

1771B 55.95 

17716-0] 5 7.95 

KEYBOARD CHIPS 

AV5— 2376 13.75 



PROM'S 

1702A 4.00 

2704 15.00 

2708 12-00 

2716 30.00 

2716 Intl 38.00 

2758 26.60 

D3601 4.50 

O3604 13.00 

5203AQ 5.00 

5204AQ 7.50 

6834 17.50 

6834-1 14.95 

82S23B 4.00 

B2S129B 4.25 

8223B 3.50 



6B00 SUPPORT 

6810P 

68B10P 

6820P 

6821P 

6828 P 

6834P 

6B50P 

6852P 

6860P 

6862P 

6871P 

6875P 

6B80P 



4.95 
6.00 
7.50 
5.50 
11.25 
16.95 
9.75 
11.75 
10.00 
14.50 
28.00 
8.75 
2.50 



Z80 SUPPORT DEVICES 

3881 12-95 

3882 12.95 

CHARACTER GENERATORS 

2513 6.75 

2513 5v upper 9.75 

2513 5v lower 10.95 

2516 10.95 

MCM6571 10.95 

MCM6571 A 10.95 

MCM6S74 13.25 

MCM6S75 13.25 

WAVEFORM GENERATOR 

8038 3.50 

MC4024 2.25 

566 1.50 

DYNAMIC RAMS 



4 1 6 D/4 1 1 6 

1 103 

2104 

2107B 

2 1 7 B-4 

TMS4O50 

TMS4060 

TMS4070-2 

4096 

4 1 1 6 /4 1 6 O 

MM5270 

MCM660S 

USRT 
S23S0 

UART'S 

AV51013A 
AYS-1014 A 
TR1602B 
TMS6 0I 1 
IM6402 
IM6403 



32.00 
l.OO 
4.00 
4.25 
3.9 5 
4.0 
4.50 

32.00 
4.00 

32.00 
4. SO 
5.00 



5.25 
8.25 
5.25 
5.95 

10.80 
10. SO 



STATIC RAMS 

1-16 



64 
17-6 3 + 



21 L02 

21L02 (351 

21L02 (25( 

410D 

1101 A 

2101-1 

2102 

2111-1 

2112-1 

2114-3 

2125L 

2147 

31 L01 

3106 

3107 

TMS-4 044 

4200 A 

TMS-404S 

610) 

74C89 

7489 

7 4S201 

PB101 

P8155 

P81S6 

8599 

9 107BPC 



1.50 1.24 

) 1.6 1.3 5 

1.75 1.60 

10.75 10.00 

1.00 .90 

2.95 2.75 

1.25 1.15 

3.95 3.50 

2.95 2.80 

11.00 10.00 

11.10 9.00 

37.50 

2.50 2.35 

3.95 3.70 

3.9 5 3.7 

9.95 9.00 

12.95 

11.00 10.00 

8.30 7.40 

3.25 3.05 

2.25 2.10 

4.50 4.00 

4.20 3.40 

17.00 14.00 

21.00 18.00 

1.8 8 1.7 5 

1.6 5 1.4 5 



1.1B 
1.25 
1.50 
9.25 
.80 
2.60 
1.00 
3.2 5 
2.69 
9.25 
8.30 

2.00 
3.25 
3.2S 
B.95 

9.25 
7.25 
2.85 
1.90 
3.75 
2. B0 



N8T2 

N8T26 

N8T9 5 

N8T96 

N8T9 7 

N8T9B 

B 1 LS9 5 

8 1 LS9 7 

14BB 

14B9 

D32 5 

O3207A 

D3208A 

D3211 

B3222 

B3242 

D3 24 5 

C3404 

P3408A 

P4201 A 

MM5320 

MM5369 

TMS5501 

DM8130 

DM8131 

DM883 3 

DM8835 

DMB837 

MK50 240 

MK50250 



3.39 
2.10 
1.35 
1.3 5 
1.3 5 
1.3 5 
2.00 
2.00 
1.75 
1.75 
4.00 
4.55 

14.20 

10.00 
9.75 

10.15 
5.6 
6.75 

12.00 
5.20 
7.50 
1.90 

24.9 5 
2.90 
2.75 
2.50 
2.50 
1.75 

20.0 

15.00 



TU-ii 



Convert TV. 
Video Monitor 
KIT 



$8.95 



JADE 8080A KIT 
$100.00 KIT 

BARE BOARD $30.00 



MEMORY PLUS 
fot KIM-1 
8K RAM (21L02I 
BK EPROM 

ASSEMBLED & TESTED 
$245.00 



KIM-1 

ASSEMBLED & TESTED S245.00 



MODEM 

80-103 A Serial I/O and FSK modem 
for professional and hobby communi- 
cations. 

♦Completely compatible with your 
IMSAI, ALTAI R, SOL, or other S-100 
microcomputers. 

•Designed for use on the dial phone 
or TWX networks, or 2 -wire dedicated 
lines, meets all FCC regulations when 
used with a CBT coupler. 
*AII digital modulation and demodu- 
lation with on board crystal clock and 
precision filter mean that NO ADJUST 
MENTS ARE REQUIRED. 
*Bell 103 standard frequencies 
♦Automated dial (pulsed) and answer 
♦Originate and answer mode 
*1 1 or 300 BPS speed select 
♦Complete self test capability 
♦Character length, stop bit, and parity 
♦90 day warranty and full documen- 
tation. 

PRICES: 

Bare Board & Manual $49.95 
Assembled (48hr burn) $279.95 
JG-DCA Kit $159.95 



full ASCII 

PROFESSIONAL KEYBOARDS 

♦ Full 128 Character ASCII 

♦ Tri-Mode MOS Encoding 

♦ MOS DTL TTL Compatable Output 
- Two-key Rollover MODEL 

756 



Level and Pulse Strobe 

♦ Shift and Alpha Lock 

♦ Selectable parity 



Positive or Negative Logic. 
PRICING INFORMATION 



(56 keys) 



Model 756 (assembled) 
Model 756 K (kit) 
Model 702 enclosure 
Model 710 Numeric Pad 
Model 756 MF Mtg.Frame 



$59.95 
149.95 
$29.95 

$9.95 
$8.95 



MOTHER BOARD'S - S-100 STYLE 

13 slot with front panel slot 
BARE BOARD $35.00 

KIT $80.00 

22 Slot $149.95 

Assembled & Tested 



CONNECTORS 



DB-25P 



44 Pin 
44 Pin 
86 Pin - 
86 Pin - 
100 Pin 
100 Pin 



$2.25 

COVER 

PC & EYE 

WW 

(6800) PC 

(COSMAC ELF 
(Altair) PC 
(Imsai) WW 



DB-25S 
$1.50 



PC 



$3.25 

$1.95 
$2.50 
$5.00 
$5.00 
$4.50 
$4.25 



100 Pin- (IMSAI) PC 



$3.25 



:: 
<. 



JADEZ80 

-wlfi PROVISIONS lor KIT 

ONBOARD ?7M md POWER ON JUMP 

I2MHZI 



$135.00 EA. 
$149.95 EA. m*» 

BARE BOARD $35.00 



' i 
' . 
' i 
>> 

:: 



i! 
i 

• 



JADE VIDEO 
INTERFACE KIT 

FEATURES $99.95 

S-100 Bus compatible 
32 or 64 Characters per line - 16 lines 
Graphics (128 x 48 matrix) 
Parallel h compositive video 
On board low-power memory 
Powerful software included for cursor, 
home, EOL, Scroll Graphics/Character 
Upper case, lower case and Greek. 
Black-on-white & White-on-black. 



JADE PARALLEL/SERIAL 
INTERFACE KIT 

$124.95 KIT 

♦S-100 

♦ 2 Serial interfaces with RS2 32 inter- 
interfaces or 1 Kansas City cassette 
interface. 

♦ Serial interfaces are crystal controlled 

♦ Selectable baud rates. 

♦ Cassette works up to 1200 baud. 

♦ 1 parallel port. 



STATIC RAM BOARDS 

ASSEMBLED & TESTED 
8K 

Ram 8 (250ns) 
Ram 8B (450ns) 
250ns KIT Mem-1 
450ns KIT Mem-1 
Bare Board 
6800 Adapter for 
S-100 system for 
Mem-I only KIT 

16K Uses2114L 
Ram 16 (250ns) 
Ram 16B (450ns) 

32K 

JG-32K (250ns) $875.00 
JG-32KB (450ns) $775.00 
450ns KIT $675.00 



$169.95 
$139.95 
$169.95 
$125.00 
$25.00 



$12.95 

$375.00 
$325.00 



DYNAMIC RAM BOARD 
by S. D. Computer Products 

On board refresh is provided with no 
wait states or cycle stealing required. 
+8VDC 400MA DC, +18VDC 400MA 
and-18VDC 30MA DC. 
EXPANDABLE 32K (uses 41 1 5) 200ns 
8K Kit $151.00 24K Kit $367.00 
16K Kit $259.00 32K Kit $425.00 
EXPANDABLE 64K (uses 4116) 200ns 
16K Kit $281.00 48K Kit $757.00 
32K Kit $519.00 64K Kit $995.00 



16K STATIC BOARD 

with memory management can be used 
with Alpha Micro or Cromenco 
Systems. 



RAM 65(250ns) 
RAM 65B (450ns) 



$350.00 
$390.00 



COMPUTER MAINFRAME 

Includes: $295.00 

Power Supply +8v at 18amps 
+ 16v at 2 amps 
Mother Board - 12 slots with 
connectors Assembled & Tested 
Has Whisper Quite Fan & AC line fitler 
Cabinet size 7"H x 19"W x 22" D 



THE PROM SETTER 



WRITE & READ 
EPROM 
1702A - 2708 - 2716 - 5204 



6834 



♦Plugs directly into your ALTAIR, 

IMSAI computer. 
♦Includes main module board and 

external EPROM socket unit. 
♦The EPROM socket unit is connected 

to the computer through a 25 pin 

connector. 
♦Programming is accomplished by the 

computer. 
♦Just read in the program to be written 

on the EPROM into your processor 

and let the computer do the rest. 
♦Use socket unit to read EPROM's 

contents into your computer. 

KIT $210.00 



ASSEMBLED 



1 



375.00 



S-100 Power Supply with Cabinet 

Power supply +8v at 18 amps 
±-16v at 2 amps 
Has connector for Power output 
MODEL UPS=600 size 5"Hx8"Wx6V-."D 

PRICE $149.95 



E-PROM BOARDS 

MR-8 (8K uses 2708) KIT 

with 1K RAM 
MR-16T (16K uses 2716) KIT 

with 1K RAM 
MM-16 (16K uses 2708) 
RAM/N/ROM (16K uses 

any E-PROM) KIT $117.00 
JG-8/16 (uses 2708 or 

2716) KIT $59.95 

BARE BOARD $30.00 



$99.50 
$99.50 
$99.00 



EXPANDABLE E-PROM 



S.D.Sales 



16K or 32K EPROM 



$49.95 without 
EPROM 



Allows you to use either 2708's for 
16K of Eprom or 2716's for 32K of 
EPROM. 



FLOPPY DISC INTERFACE 

JADE Floppy Disc (Tarbell Board) 

KIT $175.00 ea. 



S.D. Sales Versa Floppy 



Kit 
$149.00 ea. 



MODEL 801 R Shugart with 
Disc Cabinet 

Includes Cabinet, Disc. Drive, Power 
Supply, Cable, Fan & Data Cable. 
Has AC line filter. 

Cabinet size 10"H x 10"W x 16"D 
MODEL DM 2700-S $ 835 . ea 



Computer Products 

RETAIL STORE HOURS Monday ■ Friday 9- 
Salurday 9- 
Discounts available al OEM quantities ADD SI. 50 
under 10 lbs. for shippmc. Califon 
6% sales tax. 

NEW CATALOG NOW AVAILABLE 



tcsidents add 



american! 
|e»:re^ 



Cards 
Welcome 



Circle 195 on inquiry card. 



BYTE August 1978 181 





CONVERT ANY TV 

TO A HIGH QUALITY MONITOR 

• Hot Chassis or Transformer sets 

• 64-80 characters per line 

• By-passes tuner & I.F. 

• Normal viewing unaffected 

• Safe — Easy Installation 

ACVM Hi-Resolution $24.95 ppd 






RFVM C h2-6 Modulator $9.95 ppd 




VAMP INC. Box 29315 
Los Angeles, Calif. 90029 

Calif. Residents add 6% Sales Tax 



Circle 378 on inquiry card. 



CANADIANS 

Announcing 

HAMILTON LOGIC 
SYSTEMS 

Specializing in logic 
devices, microprocessors, 

memorys, TTL, Cmos , 
etc. 

Send for your catalogue 

Box 7 

STONEY CREEK 

ONTARIO L8G 3X7 



DISKETTES 

VERBATIM for Your DRIVE 



Ea. In 
boxes 
of 10 

In 
boxes 
10 



Circle 153 on inquiry card. 



I Msr $Q qn 

I 16 Sector U.uU 

STANDARD U If) I 

Soft or Hard Sector TilU« 

CP/M 1.4 ttATttU'lti 

PLASTIC BOX ff,B2 $ 3 
HAZELTINE CRT 1 500 M 000 

Complete 1*2*3 Computer t rt i r 
System: Hazeltine 1500, *J) 1 43 
Horizon-2, Centronic 779 

Visa, Master Charge, Cash, C.O.D. 



MANCHESTER EQUIPMENT CO., Inc. 

30 Midland Ave. • Hicksville, N.Y. 11801 
Call Collect: (516) 433-0613 



Circle 217 on inquiry card. 



MIOROVERTER 

A SPECIAL COLOR MODULATOR FOR APPLE II USERS!! 

UHF Vernon, rjperatt* abovt Channel I*. Eliminate! worm* 



Optra tit above tti« switching harmonica of the computer, 
thereby yielding a cleaner, worm-tree picture. Tunable 
over a minimum of 4 channel!. Interfaces directly with 
the Apple II as well as most other mieres. Comet with 
video cable and RF output stub coupler. Two-toned cowl 
type decorator cabinet. Size: 5.5cm x 8,5cm i 11.5cm. 
Power: +5V. Current approii I ma. Self-powered with 4 
pencell batteries. Operating life in excess of 1000 hours 
or near shell-lift of batteries. Excellent stability. Precise 
frequency adjustment. Ho assembl y required except for 
installation ef batteries, net supplied. MODE L MVX-500. 

AVAILABLE FROM YOUR LOCAL COMPUTER DEALER 
or direct from ATV RESEARCH. COST Including shipping 
anywhere in USA and Canada — S3S.O0. 



" PIXE-PLEXER " An IC type video-to-RF modulator 
includes FM sound tub"tarrler, color suborner and 
separate R-Y and B-Y inputs. Oeilped around the 
LM-1889 chlj. A designers dream with full data sheets. 
Model PXP-4500. Kit form. S24. 60 postpaid. 

" PIXE-VERTER " "Hie original computer video-to-RF 
I nterface module. Kit form: S5.50 Model PXV-2A 

|PHCTtEefWltiT^ODAYrDIAM5-5n^ 



WVi 



13-B Broadway ATV Research Dakota City, Nebr. 



6800 OWNERS 

At last a real world fully address- 
able SS-50 control interface. Con- 
trol robots, appliances, organs, solar 
devices, etc. Applications limited 
only by your imagination. Easy to 
use with machine language as well 
as basic. Fully buffered board 
plugs directly onto mother board 
and responds to any address de- 
fined by user. 8 fast relays latch 
data while 8 opto-isolators allow 
handshaking capacity. 

Kit $98.00 

Assembled and tested $125.00 

Visa & Master Charge 
Shipped pre-paid 

TRANSITION 

ENTERPRISES INC 

Star Route, Box 241 

Buckeye AZ 85236 







S-IOO Kits 
at Discount Prices 

-II slot mother board with sockets 

and active terminator $80** 

•16 K EPROM board for 2709 - s $48~ 

•8 K static ram $125" 

1 
There's much more, including 

complete systems; sand for our 

flyer. 

PCE ELECTRONICS 

4782 DEWEY DRIVE 
FAIR OAKS, CA. 95628 

•Ma.lt, Chorg. • Add 5T. (or shipping, 
•Vl.a oxc... refunded. 
• prion, ordtr. • Calif, rt.ldanu add 

(916)966-7033 6% . all. (at. 
- No COD 







Circle 17 on inquiry card. 



Circle 377 on inquiry card. 



Circle 288 on inquiry card. 



BIT BASEMENT 

BARGAINS 

S0R0C IQ120 [assuled] ... $869.95] 
| LEAR ADM-3P, [assbled] ...$859,951 

LEAR flOM 1A [assbledl ..$1199.95 
L 16K RAM BOARD [assbled] $495.00 j 

250nS 180 day warranty 
[CENTRONICS 779 $1139.95' 

MICR0P0LIS 1042 Mod I . $779.00 

BIT BASEMENT 

P.O. Box 1719 

Santa Monica, CA 90406 

£E (21 3) 322-9070 FBT 

all items shipped FOB factory 




ATTENTION MOTOROLA 
MEK6800D2 USERS 

4 Slot Card Rack 

Designed Speicifically for the 

MEK, MMS68104 MEMORY 

BOARD, EXORciser, and 

Micromodule Boards. 

Kit $64.95 
Assembled $79.95 
Check, Money Order, VISA or MC 
add $2.00 shipping, PA. residents 
add 6% sales tax. 

DEALER INQUIRY WELCOME 

PENTEC, INC. 




139 

Ttlco 2 
DAA 
Style 
S185 

SI60 



USR-310 
ORIGINATE 
ACOUSTIC 
COUPLER 



Operates With 

Any Standard Telephone 

Direct 1 

Also Available: Connect 

Style 
USR-330 Onginale/Aulu Answer Modem . . $324 
USR 320 Auto Answer Only Modem J299 

(1 FCC CertilierJ Package. Connection to phone lines via 
standard extension phone jack ) 

12 Connection lo phone lines via CBS-1001F DAA which can be 
leased Irom phone company lor appiox J5 007mo plus installation 
tee) 
INTERFACES: 

• USR 310 - RS232C only 

• USR 320 and USR 330 - RS232C and 20mA 

(Specify with order II both interlaces are required, add $10 to 
unit price ) 
ALL UNITS FEATURE: 

• 0300 Baud Data Rate • Fully Assembled and 

• Stand Alone Unil Tested 

• Halt/Full Duplex • Optional Annual 

• 90 Day Wananly Maintenance Coverage 
Prices include shipping and handling in continental U S Illinois 
Residents add 5°. sales lax 

U.S. ROBOTICS. INC. 

Bo, 5502 . Chicago. Illinois 6068(1 / 13121 528 9045 



Circle 31 on inquiry card. 



Circle 299 on inquiry card. 



Circle 386 on inquiry card. 



Circle 387 on inquiry card. 




CO 




IT WILL TELL YOU WHERE TO GO - 

CPU-1 TH 8080A CPU BOARD WITH 

8 LEVEL VECTOR INTERRUPT. 

$30. BARE $185. KIT 

$220. ASSEMBLED AND TESTED 



DEALER INQUIRIES INVITED 



UNIVERSITY DISCOUNTS AVAILABLE 



W7T7C 



™ WAMECO INC. 
/nC. 3107 LANEVIEW DRIVE SAN JOSE CA. 95132 



2708/2716 EPROM 
MEMORY BOARD 

* S-100 BUS 

* 1-32 KBYTES USING EITHER 2708 OR 2716 EPROMS 

* HIGH/LOW LIMIT ADDRESS RANGE SELECTION 

* MEMORY BANK SELECT OPTION 

* SOL^COMPATIBLE MEMORY DISABLE 

* SELECTABLE WAIT STATES 

* FULLY BUFFERED INPUTS AND OUTPUTS 

* DOUBLE SOLDER MASK 

* SILK SCREENED PARTS LAYOUT 

* COMPLETE DOCUMENTATION 



$30. BARE 

$100. KIT (LESS EPROMS) 

TESTED AND ASSEMBLED $130. 
(LESS EPROMS) 



DEALER INQUIRIES INVITED 



UNIVERSITY DISCOUNTS AVAILABLE 
inc. WAMECO INC. 3107 LANEVIEW DRIVE SAN JOSE CA 95132 



TM 



i -Electrolabs 



Educational Grade VIDEOTAPE Special: y/xZW 20 boxes/$1 25.00 



The "Pro" fully encoded ASCII Keyboard by Cherry. Auto RE- 
PEAT feature, 5 special function keys. 300mA/5V. (Shown as 
mounted in 'The Case' .Below) $119.00, 3/99.00, 10+/89.00 



USED SYLVANIA 
12" MONITORS 
You Fix: $24.95 
Working: $69.95 
Cold Chassis, 25lbs. 




The Dumb Terminal for Smart People 

80X24 with full 128 char. ASCII UC+LC 
font with all control characters displayed. 
300-19,200 baud RS232. 2nd font addressable 
from keyboard in you-program-it 2708 for 
APL, Graphics sets, etc. Plug in monitor 
I/O connector, 110V AC and you are ready. 
INCLUDES: 'The Case', Cherry Kbd. A used 
monitor, ESAT 200A, all options except 
vector addressable cursor and modem. 
Bulletproof design and construction. 
Normally $675.00 What you always 
wanted your ADM3 to be: 
SYSTEM"A" $649.00 10/S599.00 



PO Box 6721 Stanford 




THE FANTASTIC! 

MEMOREX FIVE-FIFTY 



an 94305 

415-321-5601 



* Hard and Soft Sectoring 

* Single and Dual Density 

* Double side configuration 
as a retrofit at any time. 
*U 01220V, 50160Hz 

"Pin for pin compa table with 
Shugart 800,801,850,851 
(50 pin edge connector) 
$536,2/499, 5/475,10/449 
25/425, 100/405 

Double Sided Retrofit $299 




"The Case" Beautiful and sturdy 
anodized aluminum case in deep black designed to contain the 
ESAT 200A, and with a bezel cut out for the Cherry 'Pro' keyboard, 
(installed as shown above) Choose deep brown, light yellow, or crim- 
son to accent or color code your installation. The only choice for 
hard-use institutional and educational applications. $69.00, 10/ 59.00 



MINIDISKETTES (5.25') 1-9 10-24 25+ 
10, 16 or Soft Sector $4.79 4.65 4.45 

STANDARD (8') DISKETTES 
Hard or Soft Sector $5.99 5.33 4.79 

CASSETTES 
R-300 Certified Phillips Type $5.25 4.99 4.35 
1-150 Certified for aodio decks $4.60 4.30 3.90 
('Kansas City' & SWTP formats) 



SURPLUS Muffin type fans ST. 95. Lambda Power Supplies 

SV/70A-S 145.00, 35.S-S89.00. 16A-49.00. 12V/7.3A-S69.00. 
Cassettes and Diskettes Available. 



OUR CATALOGUE 



Contains IC's, T.I. Sockets (1 cent/pin. if you 
ask) Advice and much more. It is free. 



Shipping and Handling: Surface: $o.40/ib. Air: $0;75/ib., 1.00 minimum 
Cal. Tax: 6.5% Insurai 



Insurance: $0.50 per $1 00.00 



Circle 1 15 on inquiry card. 



BYTE August 1978 183 



What's New? 



SYSTEMS 



User Programmable Intelligent Terminal System 




Fully user programmable, the Mini 
Disk Terminal (MDT) 400 is an intelli- 
gent terminal system which can be used 
for a variety of distributed data proc- 
essing applications including data entry, 
test processing and data communica- 
tions. The MDT-400 features: mini- 
diskette; 8 bit microprocessor and 
communications interface; high resolu- 
tion video display with 16 line by 80 
word format, scrollable through 2560 
character buffer; 122 key solid state key- 
board with 18 user defined keys and 
loadable formats; integral minidisk with 
87 K byte capacity in IBM soft sector 
format; low and medium speed character 
printers for hardcopy output; asyn- 
chronous and binary synchronous com- 
munications interfaces for line speeds up 
to 9600 bps; program development sys- 
tems supporting assembler and high level 
language and text processing applications 
package. 

Representative prices include: Model 
401 with 8 K bytes programmable mem- 
ory, integral minifloppy, video and key- 
board is priced at $4275; Model 402 
with 15 K bytes programmable memory, 
integral minifloppy, video and keyboard 
is priced at $4500; Model MDT-441 low 
speed, 60 cps, matrix printer is priced at 
$2495. For further information, write to 
Compugraphic, 80 Industrial Way, Wil- 
mington MA 01887." 

Circle 543 on inquiry card. 



Floppy Disk Microcomputer Supported by Custom Software 



Low Cost, Do It Yourself Computer 




An integrated microcomputer from 
Britain incorporates floppy disk drives 
and software. The Rair Black Box dual 
disk drives accept 5V4 inch (13.3 cm), 
single sided, reversible, soft sectored 



floppy disks, each with a capacity of 
81.92 K bytes. Each disk has 40 tracks 
with 16 sectors per track. Transfer rate 
is 125,000 bps; latency is 100 ms; and 
access time is 40 ms track to track. 

The microprocessor handles up to 
80 instructions; cycle time is 1.28 ms. 
The unit is housed in a self-contained 
desktop cabinet. 

The programmable memory contains 
65.536 K bytes. Software includes a disk 
operating system, an extended BASIC 
interpreter, a relocatable FORTRAN 
compiler, and a COBOL compiler. Other 
features include dual serial IO ports and 
an 8 slot mother board for system 
expansion. 

For further information contact 
Rair, 30-32 Neal St, London WC2H 9PS 
ENGLAND." 

Circle 544 on inquiry card. 



Two New F8 Products for the Personal Computer User 



The introduction of two new F8 
products for the personal computer user 
and design engineer has been announced 
by Comptronics, 19824 Ventura Blvd, 
Woodland Hills CA 91364. 

The F-8S100 is a processor board 
compatible with the S-100 bus. The unit 
provides sockets for 2 K bytes of eras- 
able read only memory monitor, two 
PIO sockets and connections for six IO 
ports. The board has 64 bytes of scratch 



pad programmable memory and a fully 
buffered data bus. The Model F-8S100 
sells for $239 as a kit or $275 assembled. 
The second product is an F8 micro- 
computer, Model KD80, with keyboard 
and 6 digit display. The unit provides 
audio interface and speaker compatible 
with the onboard KD-BUG (3856) music 
routine, 2 K bytes of random access 
memory expandable through an S-100 
connector, and 1 K bytes of erasable 




A new do it yourself computer 
called SKIP II has 1 K bytes of program- 
mable memory, LED display of both 
address and data, hexadecimal keyboard, 
screen printed front panel, printed cir- 
cuit board and National Semiconductor's 
SC/MP computer chip. It can be built for 
less than $100. This includes detailed in- 
structions, system checkout guide and 
troubleshooting manual. A programming 
guide illustrates all of the 46 instructions 
with simple programs which explain 
what the computer is doing at each stop. 
It is said to be ideal for the beginner. 
Contact NBL, POB 1564, Richardson 
TX 75080." 



Circle 545 on inquiry card. 



read only memory with four additional 
2708 sockets. Model KD80 sells for 
$375 as a kit and $425 assembled." 

Circle 546 on inquiry card. 



184 August 1978 © BYTE Publications Inc 



CaIiFornIa IncIustriaI 

Post Office Box 3097 B • Torrance, California 90503 




Hazeltine 1400 



cost effective 



CRT TERMINAL 



H59 



plus 

shipping 



The Hazeltine 1400 Vidio Display Terminal is designed to 
optimise interactive real-time operations. The interface is 
capable of either local or remote connection through an E1A 
RS232-C interface at baud rates that are switch selectable 

up to 9G00 baud. . 

, I j I ■ I j 1 j I ■ I j I j I ■ I ■ I ■ I ■ H E 

• All 128 ASCII Codes | jjj | a |w| t \ i> | » | r | u | . \y\ % |:a,[ »" 



• 64 Displayable Characters L.«.| * 

• 24 Lines; 12 inch Screen ' rr,;i 



• 80 Characters per Line 
■ Self Diagnostic Test 



H H^H-l-lim-l-l-H 



Quantity pricing upon request. 



CONNECTORS 



c3 "°» L 

JUUU1UU. 

t?7 — bb — he 

I ft'l'I'I'lTPI'l 'I'lTTj 



your c.ttce 

DB25P 

male plug & hood 

or 

DB25S female 

»3.95 

Qty. fe. male hd. 
10 3.45 2.4S 1.15 
25 3.15 2.25 1.05 
100 2.85 1.90 .95 
500 2.25 1.60 .85 
IK 1.97 1.37 .73 



Edge 
Connectors 




100 PIN 

IMSAI/ALTAIR 

S-100 • GOLD PLATED • .125" CENTERS 

Altair .140 row, soldertall $5.93 3/516.50 

Imsai .250 row, soldertall $4.98 3/311.95 

3 Level Wire Wrap .250 row. . . $4.98 3/$13.00 

SPECIALS 
W/W same as above without ears$3.50 3/$10 
72 (dual 36) W/W .156" centers. . . $2.50 3/$6 



498 

■ 10 lor S45. 



■H _■» certified Digital 

SCOtCH CASSETTES 



Diskettes 

8 inch Soft (IBM) 
8 inch 32 sector 
Mini Soft sec. 
Mini 10 sector 
Mini 16 sector 



Won't drop i BIT! 



CALIFORNIA 
INDUSTRIAL 

is an 

Authorized 

Dealer of 

Scotch Brand 

Dataproducts 




S-lOO Mother Board 




18 slot 
IMSAI 



HEXADECIMAL KEYBOARD 

Maxl-Swilcri hexadecimal keyboards aro deaifjned lor ^<J /| QE 

microcomputer syatoma lhal require 4bti output fc J^ei3"#B 

In alandord hex code. 

Each assembly consists ol 18h«mell- 

cally sealed reed switches and TTL "on 

shot" debounce circuitry. 

Reliable low tnctlon ocotal resin 

plungers are credited for Ihe smooth 

operation and long lile ol this premium 

keyboard 

Requires single +5 volt supply. 



TEIXTYPEM0DEL43 



New from Teletype, Ihe Model 
43 is capable ol printing 132 ASCII 
characters per line. Sand and recslve 
data at to or 30 Char, per second. Key> 
board generates all 128 ASCII code combine 
tlons. RS-232 Interlace, same as Ihe popular 
Model 33. Data sheet sent upon request. Manufac 
turer suaqested price S1377.00. 

IMMEDIATE DELIVERY '1219 

TTL model with NOVATION brand 
Acoustic Modem. *1419 




r M^\ 








MAXI-SWITCH 

ASCII KEYBOARD 

,3n»B4.97 



Definitely the best small system keyboard that 
we have seen. Maxi-Switch has incorporated 
all the important keyboard features at a reason- 
able price. Full 128 ASCII functions, "N" key 
rollover, automatic repeats, user designated 
special function keys, escape, control & lots 
of others. Data sheet upon request. 



'24.88 



,i . km ft UNIVAC 
KEYBOARD 



FROM ATARI 

COLOR TELEVISION 
R.E MODULATOR 

1395 





The Atari R.F. Modulator 

computer dais to be 

displayed directly upon your 

Isltnrj television system. 

nverts Ihe slg- 

01 her video sources Into 
television frequencies. 
Operates from single 5 
voll supply. Complete 
with metal case, mating 
RF. connector and 15 
leei ol coax cable. Schematics 
and instructions Included. 



SPECiRL 



APPLE (I 

iK ME 

COLOR •GRAPH 

$1024 



IBK MEMORY 

COLOR 'GRAPHICS* SOUND 



MlB-Suf. 
Retail.... 

>1195 



Potter & Brumfield 

REED RELAY 

5voltj;oii,pulls3.5v. 



This joystick fealui 
meters. IM 
lite angle 



lour IO0K polemic- 
proportional 
si Ihe dick Perfect tor 
isd slereo > 



1 W SPST 



r» 

10 100 IK 



.97 .79 .65 



2U02 

LOW POWER 

45Q nS 



74 no 
74116 
74120 
74121 
74122 
74123 
74125 
74126 
74128 
74132 
74136 
74141 
74145 
74147 
74148 
74150 
74151 
74153 
74154 
74155 
74156 












74157 


99 




i x\ 










74160 


1.19 


1 S< 


1*2 










74161 


.99 










rlftftii 




74162 
74163 
74166 


1.49 
.99 
1.19 








301H 


.39 




13 


7442 








7443 




74t70 


2.49 










7445 




74173 


1.49 










7446 




74t74 


1.19 






7403 


















7448 




74176 


.99 










7450 


25 


74177 


.99 










7451 
















7453 


.25 










7408 
7409 


.25 
.25 


7454 
7460 


.25 

.25 


CMOS 

4001 25 


309K 
310H 


.99 
1.19 


































7413 


.49 


7474 


.35 


4008 


1.49 


312H 


T99 




























.69 
















.25 






7422 


.49 


7482 


99 


4013 


49 


320K-12 1 




7425 


.39 


7485 


.99 


4015 


1.39 


32QT-5 




7427 


.39 


7488 
7489 


3.40 
2.79 


4017 


1^29 


320T-12 




7429 


.39 


7490 
7491 


49 


4019 


1.79 




H19 






7492 












7437 


39 


7493 
7494 


.49 


4022 


i3s 


340K-5 




7419 

7440 


.39 
.39 


7495 


.79 


4024 
4025 
4027 
4028 


1.19 
25 
.69 

1.25 


340K-12 

340T-5 J 
3407-12' 












4030 


.69 












4032 


49 







350N .99 

351CN .65 

370H 1.29 

370N 1.29 

373N 3.19 

377N 3.99 

380N 1.39 

381N 1.79 

382N 179 

NES55v 49 

NE556 1.29 

NE565H 1.49 

NE565N 1.79 

NE566N 125 

703CN 45 

709H 39 

709N 39 

710N 79 

71 1H .39 

711N 39 

723H 55 

723N .55 

7Z5H 3.49 

733H 149 

733N .99 

739N 1.19 

741 N .09 

747N .79 

748H .39 

748N .39 

1414N 1.75 

1458 .69 
UAttT 
AY5-1013A 

$ 4.98 

SPECIAL 

GENERAL INSTRUMENT ASCII Keyboard Encoder 
AY &3600 Prime but house marked only £4.95 



Digital Cassette Drive 




COMPUTER CONTROLED 

*79. 50 



This precision I/O assembly features 
remote software controlled search 
capabilities. Two independent capstan 
drive motors allow the computer to 
control direction and speed of the 
transport. 

The assembly consists of a Raymond 
cassette transport, chassis, mother- 
board and three edge cards: read/write, 
capstan drive & control card. 
Current replacement valued at over 
$700.00. Schematics and complete 
documentation included. USED, but in 
excellent condition. 



*19.98 



S-100 PROTOTYPE BOARD | 

Stf 00- Maximum design ver- * 4 
sollilty along with standard 
address decoding ond buf- 
fering for S100 systems. 
Room for 32 uncommitted 16 
pin IC's, 5 6 us buflsi (V de- 
coding chips. 1 DIP ad disss 
selecl owner), o 5 von regu- 
lator ond more. 
WWIOO-WIre wrap btead- 
booid. similar lo the GPIOO. 
Allows wire wrap ol alt sizes 
af sockets In any sites ol 
sockets In any combination 
An extra regulator posNion 
(or multiple voftago appiico- 




$.69 

Conductor Ft. 

RIBBON WIRE 

TWISTED PAIR 



Transistors 

■a. 10 so loo 



2N2222A .20 .18 .16.15 
2N3055 .69 .65 .59.55 
Ml 3055 .79.75.69.65 
2N3772 1.59 1491.39129 
2N3904 .15 .11 .09.07 
2N3906 .15 .11 .09.07 

Diodes 

10 25 100 
1N4002 100 v. .08 06.05 
1N4005 600.. .10.08.07 
1N4148 signal .07.05.04 
jumbo red aa. 10 25 100 
LED'S *15.13.11 .09 



Power Adapter 



6vdc,140mAS1.39 
7vdc,1.4 A. 5.50 
9vdc. 15mA. 1.19 

10 y Ac, 300m A. 



•"& 



Binding Posts 
5 -WAY 

3lor*U9 

20 100 
>35 .29 



SOLDERLESS 
TERMINALS. 

INSULATED 

'.98 1 

Specily^lBilo-M"' 
100 500 Ik 
450 



12131679-9001 



RELAYS 

SPOT MINIATURE 

10 25 100 
S l.l"ea. 1115 104 .89 
Coil 12 Volt dc. 

7 Amp Contacts 
P. C. Board Mount 



umbwheel 
switch 

|Ten position 

BCD 

l 139 M . 

10 50 

Ji.19 .89 



CAPACITORS 



ELECTROLVTICS 

aa. 10 50 




Miniature 
Switches 



$ I w 



$.98 



your choice 

10 50 100 111 



80,000/10v. 395 349 2.95 
4500/50v.«»9 135 U9 

1000/lSv 1.55 49 .45 
axial 



S.88 .81 .73 .66 | 
SPDT Miniature Toggles 

7101C&K 0N-N0NE OH 
7107 jot ON-OFFImnt OK) I 
7101 CK ON-(moment.OK) 

Rocker JBT DPDT 

Rotary 3P-4-Pos. 

Rotary 3P-6Pos. 

Push B (NO) S39ea4/51 



DIP Switch 





DISCOUNT 



Wire WrapXenter 



Heavy 
dutf grounded 
power cord and mating 
chassis connectors. 



PANASONIC 

*98 




A" 

450mA. 



IC SOCKETS 




wire wrap 
ea. 25 50 


low profile 
aa. 25 50 


8 




17' 16 15 




14 


37<36 35 


18 17 16 


10 


38 37 36 


19 18 17 


24 


99 93 85 


36 35 34 


40 


169 155 139 


63 60 58 



S29.95 , 
BW630 



son. 

s .98 



KYNARKp 

S00 1,000 11,000 
*9. S15. $105. 



Circle 39 on inqi. ryr card. 



BYTE Aiikusi 197H 185 



What's New? 



Choice of Speeds in 
New Acoustic Coupler 



Binary Synchronous or Synchronous 
Data Link Control Chip 

A synchronous receiver and trans- 
mitter chip that can handle either 
binary synchronous (BiSync) or syn- 
chronous data link control (SDLC) 
protocols in microcomputer systems 
is available from NEC Microcomputers 
Inc, Five Militia Dr, Lexington MA 
02173. This uPD379 is an N channel 
MOS device that is packaged in a 42 pin 
ceramic dual in line package. The part 
operates at 800 K bps. The uPD379 can 



operate in full or half duplex mode, is 
directly TTL* compatible, has three state 
data outputs, has a programmable syn- 
chronous word (character), contains de- 
tection and rejection of flag, abort and 
idle patterns, has zero insertion and re- 
jection, and an indication of overrun and 
underrun errors. The operation mode, 
data rate and synchronous character of 
the uPD379 can be changed through the 
use of external control. The uPD379 is 
priced at $16 in quantities over 100." 

Circle 627 on inquiry card. 




Auto Answer Modem 




The USR-320 is a hardwire, asyn- 
chronous, auto answer modem that op- 
erates in half and full duplex modes at 
data rates of up to 300 bps. The design 
uses integrated circuits, crystal con- 
trolled digital receiver and transmitter 
frequencies, and computer designed ac- 
tive filters. The unit comes with power 
supply and is housed in the desktop case 
shown. Connection to voice grade tele- 
phone lines is via a standard CBS-1001F 
Data Access Arrangement (DAA). The 
USR-320 is available with an EIA 
RS232C interface, a 20 mA current loop 
interface or both. The USR-330 with 
RS232C interface is priced at $185; 
with 20 mA current loop interface $185; 
and with RS232C and 20 mA current 
loop interfaces $195. Contact US 
Robotics Inc, POB 5502, Chicago IL 
60680." 

Circle 628 on inquiry card. 



Attention Surplus PDP-8 Owners 

An LED conversion kit for the 
PDP-8/E and PDP-8/L minicomputers 
is now available from Scientific Test 
Systems, POB 741, Wallingford CT 
06492. The kits are available to enable 
replacement of standard incandescent 
lamps used in the PDP-8/E and PDP-8/L 
with light emitting diodes, to eliminate 
the problem of burned out bulbs. The 
kits are complete with a set of direct 
replacement LEDs and instructions for 
modification of the front panel control 
board circuitry. The conversion kit 
for the PDP-8/E is priced at $39.95 and 
$69.95 for the PDP-8/L conversion kit." 

Circle 629 on inquiry card. 



Factory Tested 

Used Modems to Cut Data 

Communication Costs 

The availability of used ICC modems 
at prices significantly lower than new 
has been announced by the Special Offer 
Division of Racal-Milgo Inc, 8600 NW 
41st St, Miami FL 33166. According to 
the company, these modems have been 
factory tested, and are covered by the 
same warranty as new equipment. This 
includes one year for purchased units, 
and for the full term of units under 
lease. The used equipment available 
includes both medium and high speed 
modems, operating at data rates of 2000 
bps, 2400 bps, 3600 bps, 4800 bps, 
7200 bps, 9600 bps and 19.2 K bps. 
Current information on used modems 
and related equipment is available from 
the company." 

Circle 630 on inquiry card. 



The Model AC-312 Acoustic Coupler 
from Digicom Data Products Inc, 1440 
Koll Cir, Suite 108, San joseCA 95112, 
offers interchangeable high and low 
speed capability, field convertible from 
300 bps to 1200 bps, using CMOS elec- 
tronics. The unit accomplishes terminal 
to computer communication over dial 
telephone lines. It is Bell 202 half duplex 
compatible when configured for 1200 
bps operation, or Bell 103 compatible at 
300 bps configuration. The two in one 
concept permits users the flexibility of 
using the same desk styled enclosure for 
either 300 or 1200 bps operation by 
field-installing the relevant coupler elec- 
tronic board. Model AC-312 also has 
Western Electric compatible 5 bps re- 
verse channel capability. The AC-312 
single unit is $495 (1200 bps), Model 
AC-312 (300 bps) is $245. The Bell com- 
patible 202 electronic board for field 
upgrading to 1200 bps is $370. The 103 
series 300 bps board replacement is 
$150." 

Circle 631 on inquiry card. 



New Model 88-Modem 

The Model 88-Modem provides com- 
munications over either the switched 
telephone network or private lines at any 
software selected bps rates between 66 
and 600 bps. The modem is fully com- 
patible with Bell System type 103A 
modems and provides either half or full 
duplex operation. It is S-100 bus com- 
patible and includes a serial 10 port and 
an originate or answer mode modem on 
one board. Features implemented in 
hardware include pulse code dialing in 
originate mode, automatic break and dis- 
connect, and dial tone detection. The 
modem includes an 8 pole transmit and 
8 pole receiver filter, self-test electronics, 
dial tone detection, filter as well as error 
detection electronics including parity, 
overrun, etc. The dial tone detection cir- 
cuit allows the dial tone to be positively 
identified prior to auto dialing of origi- 
nate calls. Extensive software is included 
with the 88-Modem including patches 
for MITS BASIC and North Star DOS 
version 3. The modem is available in kit 
or assembled form from International 
Data Systems Inc, 400 N Washington St, 
Suite 200, Falls Church VA 22046." 

Circle 632 on inquiry card. 




186 August 1978©BYTE Publications Inc 



• ••" 



t ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• f J* 

• •*******••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••■•••••••••••■•••« z • _• ■ 

• 

•••••• 



Hetf! 



f 



16K E-PRUWrorcU 



KIT FEATURES: 



IMAGINE HAVING 16K OF SOFTWARE ON LINE AT ALL TIME! 
S-10O llmsai/Altair) Buss Compatible! 

PRICE CUT! 






1. Double sided PC board with solder 
mask and silk screen and gold plated 
contact fingers. 

2. Selectable wait states. 

3. AM address lines & data lines buf- 
fered! 

4. All sockets included. 

5. On card regulators. 

KIT INCLUDES ALL PARTS AND 
SOCKETS (except 2708s). Add $25. for I "HEnim 

DEALER INQUIRIES INVITED! 



JfltfJJl 



$57.50 kit 



SPECIAL OFFER: 



WAS $69.95 



assembled and tested. 



Our 2708's (450NS) are $12.95 
when purchased with above kit. 



1A 



S\M 



KIT FEATURES: 



ADD 

$20 FOR 

250NS 



1. Doubled sided PC Board with solder 
mask and silk screen layout. Gold 



1 



plated contact fingers. 
. All sockets includr ' 
Fully buffered 



II sockets included, 
on 
data lines. 

4. Phantom is jumper 
pin 67. 

5. FOUR 7805 regulators are provided 

° nC,rd - (450NS) 



all address and 
selectable 



BK LOW POWER RAM KIT $149 00 



S-100 (Imsai/Altair) Buss Compatible! 2 kits for $279 

Fully Assembled & Burned In 

$179.00 

Blank PC Board w/ Documentation 

$29.95 

Low Profile Socket Set 13.50 

Support IC's (TTL & Regulators) 

$9.75 

Bypass CAP's (Disc & Tantalums) 

$4.50 




USES 21 L02 RAM'S! 



MOTOROLA QUAD OP - AMP 

MC3401. PIN FOR PIN SUB. 
FOR POPULAR LM 3900. 



3 FOR $1 



ALARM CLOCK CHIP 

N.S. MM5375AA. Six Digits. 

With full Data. New! 

$1.95 each 



MOTOROLA 7805R VOLTAGE REGULATOR 

Same as standard 7805 except 750 MA output. 
TO-220. 5VDC output. 

44c each or 10 for $3.95 



FULL WAVE BRIDGE 

4 AMP. 200 PIV. 
69* 10 FOR $5.75 



NOT ASSOCIATED WITH DIGITAL 
RESEARCH OF CALIFORNIA, THE 
SUPPLIERS OF CPM SOFTWARE. 



450 NSI 2708 EPROMS 

Now full speed! Prime new units from a major U.S. Mfg. 450 N.S. 
Access time. 1 K x 8. Equiv. to 4-1 702 A's in one package. 



$15.75 ea 



4 FOR $50 00 



OUR LATEST COMPUTER KIT! 



WHY THE 2114 RAM CHIP? 

We feel the 21 14 will be the next industry 
standard RAM chip (like the 2102 was). 
This means price, availability, and 
quality will all be good! Next, the 21 14 is 
FULLY STATIC! We feel this is the ONLY 
way to go on the S-100 Buss! We've all 
heard the HORROR stories about some 
Dynamic Ram Boards having trouble 
with DMA and FLOPPY DISC DRIVES. 
Who needs these kinds of problems? 
And finally, even among other 4K Static 
RAM's the 2114 stands out! Not all 4K 
static Rams are created equal! Some of 
the other 4K's have clocked chip enable 
lines and various timing windows just as 
critical as Dynamic RAM's. Some of our 
competitor's 16K boards use these 
"tricky" devices. But not us! The 21 14 is 
the ONLY logical choice for a trouble- 
free, straightforward design. 



FULLY S-100 COMPATIBLE! FULLY STATIC, AT DYNAMIC PRICES! 

1 6K STATIC RAM KIT 






*359 00 

COMPLETE KIT 



<F 



SPECIAL 

INTRODUCTORY OFFER! 

Buy 2 KITS (32K; for $650 

450 NS 



Blank PC Board with Documentation 
$33.00 

LOW PROFILE SOCKET SET- $12.00 

ASSEMBLED & TESTED - ADD $30.00 

2114's4K RAM's -8 for $85.00 



KIT FEATURES: 

1. Addressable as four separate 4K 

Dli-jplf c 

2. ON BOARD BANK SELECT circuitry. 
(Cromemco Standard!) Allows up to 
512K on line! 

3. Uses 2114 (450NS) 4K Static Rams. 

4. ON BOARD SELECTABLE WAIT 
STATES. 

5. Double sided PC Board, with solder 
mask and silk screened layout. Gold 
plated contact fingers. 

6. All address and data lines fully 
buffered. 

7. Kit includes ALL parts and sockets. 

8. PHANTOM is jumpered to PIN 67. 

9. LOW POWER: under 2 amps TYPICAL 
from the +8 Volt Buss. 

10. Blank PC Board can be populated as 
any multiple of 4K. 



Z-80 PROGRAMMING MANUAL 

By Mostek. The major Z-80 second 
source. The most detailed explanation 
ever on the working of the Z-80 CPU 
CHIPS. At least one full page on each of 
the 158 Z-80 instructions. A MUST 
reference manual for any user of the Z-80. 
300 pages. Just off the press. 
$12.95 



HEAVY DUTY! 

Full Wave Bridge 
25AMP 50PIV 

$1.25 



Tantalum Capacitors 
1 MFD. .35V. By 
Kemet. Axial Lead. 
Best Value! 10/$1. 



GE 10 AMPTriac 

SC146D. House no. 

To-220 case. Rated 

10amps400PIV. 

75c ea. 3/$2. 



Digital Research Corporation 

w (OF TEXAS! ~ 

P. O. BOX 401247 • GARLAND, TEXAS 75040 • (214) 271 2461 



New! REAL TIME 
Computer Clock Chip 

N.S. MM5313. Features 
BOTH 7 segment and 
BCD outputs. 28 Pin 
DIP. $4.95 with Data 



LS SERIES TTL 

74LS00— 33c 74LS74 — 49c 

74LS02— 35c 74LS90 — 69c 

74LS04— 35c 74L3138— 89c 

74LS08— 35c 74LS154— 1.49 

74LS10— 33c 74LS175— 1.10 

74L.S20 — 33c 74LS367— 75c 

74LS73— 49c 74LS368— 85c 



TERMS: Orders under S15. add 75c. No COD's. We 
accept VISA, MasterCharge and American Express 
Cards. Money Back Guarantee on ail items! Texas 
Residents add 5% Sales Tax. WE PAY POSTAGE! 



• •••• 
••••• 
■•••• 
•••••• 

■■•••• 

•••••• 

■••••• 

•••••• 

■••••• 

•••••• 

■••••• 

•■•••• 

■■••*» 
•■•••• 

•••••■ 

■••••I 

•••••« 

■••••« 

■•••♦• 
•••••i 
•••••« 

•••••€ 

•••••• 

■••••• 

•••••• 

•••••• 

■••••• 

••■••• 
■••••• 

■••»•• 
•••••§ 

••■••• 
■••••€ 

•••••t 

•••••I 

■••••I 

•••••« 

•••••i 

•••••I 

•••••< 
•••••I 
■••••» 
■••••« 
•••••« 
•••♦•I 
■••••i 
•••••I 
•••••* 



■••••• 

•••••• 

•••••• 

•■•••• 

■••••• 

■••••• 

•••••■ 

•••••• 



■ •••# 

••••• 

• •••• 
••••• 
••••• 
••••f 
-•••I 

• •••« 

••••j 



•••••I 
•••••I 

•••••I 
•••••I 

• *••« 
• a *«« 

■••••i 



•••••I 
•••••I 
•••••« 

•••••• 

•••••• 

•••••■ 

•••••• 

■••••• 
■ •••• 
•••••• 

•••••• 

••••• 

■••••• 

■■•••• 




Circle 100 on inquiry card. 



BYTE August 1978 187 



Circle 297 on inquiry card. 



* YOUR BEST BUY IN WIRE WRAP SUPPLIES * 



PRECUT WIRE 

WHY BUY WIRE ON ROLLS? 
PRECUT A STRIPPED WIRE IS: 

• FmI - No more cutting & stripping by hand 

• Reliable - Good, clean, uniform strip 

• Economical - Cheaper than using bulk wire 



100 pes of 3" at S 82 • 1'M/tl SO ft roll al S1 99 - **/ft. 
100 pes of 6" M 1 06 = M/tt. 100 fr roll at 2 95 ■ 3C/n. 

Wire K.I 1 M $6 95 • 2 1/3»/tt. 



* 30 Kynar stripped 1" on each end Lengths are overall 
Colors Hed.Blue.Green.Yellow.Bleck.Orange.Whne 
Wire packaged in plaahc bags Add 254/length for lubes 



2 40 
260 
280 

300 



1000 

4 30/K 

4 71/K 

5 12/K 
5 52/K 



3 89/K 

4 22/K 
4 55/K 
4 88/K 



94 321 593/K 521'K 

98 3 42 6 34/K 5 52'K 

102 3 65 6 75/K 5 86/K 

1 06 3 85 7 Ifi/K 6 19/K 

1 15 4 05 7 57'K 6 52/K 

t 20 4 25 7 98/K 6 85/K 

1 25 4 45 8 39/K 7 IB'K 

1 29 4 65 8 BO/K 7 53/K 



4S5 
5 05 
525 



9 21/K 7 84/K 

9 62/K BT7/K 

1Q03/K 8 50/K 

10 44/K B 83/K 



Add), inches 



WIRE KITS 

*] S6.9S =2 $19.95 



250 3" 


100 4V 250 2V 


250 4V 250 6" 


250 sw- 


100 5" 500 3" 


250 5 100 6;' 


im 4- 


100 6"" 500 3'V 


100 5V 100 7 




500 4 


1 250H Roll Bulk 




Chooae One Color 




•* 


or Assortment 





kl 

I 



SOLDERI.ESS 
BREADBOARDS 
SK 10 $16.50 

INCLUDING: 

Over 100 pieces of precut wire 
in assorted lengths — free! 
Choose 1 color Red, Black, Blue. 
Yellow. Green, White, Orange 
Or Assorlmenl. 



INTERCONNECT CABLES 



SINGLE ENDED 



2 05 
2 24 

2 63 

3 40 



DOUBLE ENDED 



2 24 

233 
2 52 



2 45 
2 55 

2 76 

3 17 



WIRE WRAP TOOLS 



$34.95 

With Free Wire Kit 1 
($6.95 Value) 




HOBBY WRAP 
Model BW 630 

Batteries & Charger $11.00 

WSU 30 Hand Wrap-Unwrap Strip Tool 6.25 

WSU 30M, for Modified Wrap 7.25 

BT 30 Extra Bit 2.95 



WIRE WRAP SOCKETS 

1-9 10-24 25-89 100249 260 999 1K-5K 



♦ 



• 8 pin 


.35 


.33 


.31 


29 


.25 


.23 


14 pin 


.35 


.33 


.31 


.29 


.28 


.27 


" 16 pin 


.37 


.35 


.33 


.31 


.30 


.29 


• 18 pin 


.60 


.55 


.45 


.43 


.40 


.37 


20 pin 


.84 


.78 


.71 


.63 


.59 


.54 


* 22 pin 


.90 


.85 


.82 


.78 


.70 


.60 


24 pin 


.91 


.84 


.78 


68 


.64 


.59 


25 pin strip 


1.25 


1 05 


.95 


.80 


.70 


.65 


28 pin 


.95 


.89 


.84 


.80 


.76 


.74 


40 pin 


1.60 


1.40 


1.30 


1.20 


1.05 


.90 



Gold 3-Lovel Closed Entry Design. 

'End & Side Stackable. Atl prices include Gold. 

2 Level Sockets Also Available, 



EDGE CARD 

CONNECTOR 

SALE! 



44 Pin 


Solder Tail 


S1.75 


S15/10 


100 Pin 


Solder Tail 


3.50 


$30/10 


100 Pin 


Wire Wrap 


3.50 


S30/10 



All connectors include Gold. 



PAGE DIGITAL 
ELECTRONICS 

Ordering Information: 
Orders under $25 and COD's. add $2 

aii others, shipped ppd in u.s, via ups 135 E. Chestnut Street 5 
For Blue Label (Aio or ist ciass. add $1 Monrovia, California 91 01 6 

We accept Visa & Mastercharge 

Most orders shipped same day Phone (213) 357-5005 



Dealer Inquiries Invited 




MICROPROCESSOR 


2716TI 


22.50 


6800 


19.50 




60SOA with (tela 


8.95 






29.95 






821? 


290 


8 .15 




B214 


8.00 






8216 


2.90 






8224 


290 


18 .27 






5.35 






8251 


9.25 








10.00 


M pin 25 












COP1802CD 


19.95 






CDP1802D 
CDPI861 


25.00 
12 95 
9.95 
12.95 
18.50 


CONNECTORS 
44 pin edge 2.00 




100 pin edge 4.50 


6502 


100 pin edge WW 5.25 


1702A 


3.95 


MOS/WEMOHY RAM 


N82S23 


2.95 


2101-1 


3.95 


NB2S123 


3.50 


2102-1 


1.28 


N82S126 


3.75 


21Q2AL-4 


1.60 


N82S129 


3.75 


21F02 


1.85 


N82S13I 


3.75 


2104A-4 


4.95 


N82S136 


8.75 




4.95 


N82S137 


8 75 




4.95 


2706 


12.50 


2112-2 


3.95 


DM8577 


2.90 


2114 


8.50 


8223 


2.90 


4116 


24.95 



P.O. Box 4430X Santa Clara, CA 95054 
For will call only: (408) 988-1640 



^^ P^For will call only:(4"»» »°8-1b4U 
'^^^^k. 2322 Walsh Ave.^ 

G>uc/t- 

^**BK^ ELECTRONICS 

, =ri '^B CRYSTALS 

• ou 1 UHr i *n ■> ninn mm. i us 



25I3B 

21L02-] 

MM5262 

MM5280 

MU5320 

MMS330 

P04I10-3 

PD411D-4 

P5101 

4200A 

82S25 

91L02A 

H00165-5 

MM5710O 

GIAY38500-1 

MCM6571A 

9368 

INTERFACE 

8T25 

8T26 

8128 

8T97 

8198 

8095 

8096 

8097 



40 
3.00 
9.95 
5.94 



6.95 
450 
9.95 
9.95 
3.50 

3.20 

1.69 
2.75 



1 MHt 4.50 2.0100 MH! 1.95 

2 MHI 4.50 2.097152 MHz 4.50 

4 MHz 4.25 2.4576 MHz 4.50 

5 Mill 4.25 3.2768 MHz 4.50 
10 MHz 4.25 5.0688 MHz 4 50 
18 MHz 3.90 5 185 MHz 4.50 
20 MHz 3.90 5.7143 MHz 4.50 
32 MHz 3.90 6.5536 MHz 4.50 
32768 Hz 4.00 14.31818 MHz 4.25 
1.8432 MHz 4.50 18.432 MHz 4.50 
3.5795MHZ1.20 22.1184MHz 4,50 
60 Hz Cryital Time Bate Kit J 4.40 
30 MHz Frequency Coupler Kll $47.75 



Premier Kit lo 350 MHz 



S19.B5 



COMPUTER BOARD KITS 

8K RAM Board Kit S134 95 

4KEPR0MKII 114.95 

1/0 Board Kit 44 50 

Extender Board w'connedor 12.50 

Video Interlace board kit 125.00 
I6K EPR0M board kit w/0 PROMS 74.50 

16K Sialic RAM boaid kit 395.00 

North Star Floppy Disk Kll S665.O0 

Additional Orive Kit 415 00 

Paratronlci 100A Logic 

Analyzer Kll S199.D0 
Model II) Trigger Expander Kll 5229 00 

Model 150 Bua Grabber Kit $369.00 



New Cosmac Super "ELF" 

RCA CMOS expandable to 64K micfocomputeT 
w/HEX keypad input and video output tor graphics. 
Just turn on and start loading your program using 
the resident monitor on ROM. Pushbutton selec- 
tion of all four CPU modes. LEO indicators of 
current CPU mode and tour CPU states. Single 
step op. for program debug. Built in pwr. supply, 



256 Bytes of RAM. audio amp. & spkr. Detailed 
assy. man. w/PC board & all parts fully socketed. 
Comp. Kit S106.95. High address display option 
6.9S; Low address display option 9.95: Custom 
hardwood cab.; drilled front panel 19.75; Nicad 
Battery Backup Kit w/all parts 4.95; Fully wired & 
tested in cabinet 151.70; 1802 software club. 
10-12 pg. monthly publication 12.00 peryr. 



Auto Clock KM $15.95 

DC clock with 4-. 50" displays. Uses National 
MA-1012 module with alarm option. Includes 
light dimmer, crystal timebase PC boards. 
Fully regulated, comp. instructs. Add $3.95 
for beautiful dark gray case. Best value any- 
where. 



4K Elf Expansion Board Kit with Cassette l/F $79.95 

Available on board options: 1 K super ROM monitor J19.95. Parallel I/O port J7.95. RS232 l/F $3.50. 
TTY 20 ma l/F $1.95. S-100 Memory l/F $4,50. 

Tiny Basic for ANY 1802 System 

m ROM Monitor \um Su " w E » ° mers ,ake 30% ° ,, • 



Object code listing or 

paper tape with manual $5.50 



7B IC Update Master Manual 

1978 IC Update Master Manual $30.00 

Complete IC data selector 2175 pg. Master ref- 
erence guide. Over 42,000 cross references. 
Free update service through 1978. Domestic 
postage $3.50. Foreign $6.00. Final 1977 
Master closeout $15.00 



Video Modulator Kit $8.95 

Convert your TV set into a high quality monitor 
without affecting normal usage. Complete kit 
with full instructions. 



RCA CosmacVIP Kit $275.00 

Video computer with games and graphics. 



Sinclair Vk Digit Multimeter $59.95 

Batt. oper. imV and ,1NA resolution. Resis- 
tance to 20 meg. 1% accuracy. Small, portable, 
completely assem. in case. 1 yr. guarantee. 



PROM Eraser 

Ultraviolet, assembled 



$49.95 



TERMS S5.00 min. order U.S. Funds. Calif residents add 6% lax. BankAmericard and Master Charge accepted Shipping charges will be added on charge cards 
FREE; Send (or your copy of our NEW 1978 QUEST CATALOG! Include 28c stamp. 



188 BYTE August 1978 



Circle 307 on inquiry card. 



COMPUTER INTERFACES & PERIPHERALS 

For free catalog including parts lists and schematics, send a self-addressed stamped envelope. 



APPLE II SERIAL I/O 
INTERFACE * 

Part no. 2 

Baud rate is continuously adjustable 
from to 30,000 • Plugs into any periph- 
eral connector • Low current drain. RS- 
232 input and output • On board switch 
selectable 5 to 8 data bits, 1 or 2 stop 
bits, and parity or no parity either odd or 
even • Jumper selectable address • 
SOFTWARE • Input and Output routine 
from monitor or BASIC to teletype or other serial printer. 
• Program for using an Apple II for a video or an intelli- 
gent terminal. Also can output in correspondence code 
to interface with some selectrics. Board only — $1 5.00; 
with parts — $42.00; assembled and tested — $62.00. 




MODEM 



Part no. 109 

• Type 103 • Full or half 
duplex • Works up to 300 
baud • Originate or Ans- 
wer • No coils, only low 
cost components • TTL 
input and output-serial • 
Connect 8 ohm speaker 
and crystal mic. directly to board 
demodulator • Requires +5 volts 
with parts $27.50 




Uses XR FSK 
> Board $7.60; 



DC POWER SUPPLY 



Part no. 6085 

• Board supplies a regulated +5 volts 
at 3 amps., +12, -12, and -5 volts at 
1 amp. • Power required is 8 volts AC 
at 3 amps., and 24 volts AC C.T. at 1 .5 
amps. • Board only $12.50; with 
parts excluding transformers $42.50 




TAPE INTERFACE * 

Part no. 111 

• Play and record Kansas 
City Standard tapes • 
Converts a low cost tape 
recorder to a digital re- 
corder • Works up to 1 200 
baud • Digital in and out 
are TTL-serial • Output of 
board connects to mic. in 
of recorder • Earphone of 
recorder connects to input on board • No coils • 
Requires +5 volts, low power drain • Board $7.60; 
with parts $27.50 





TV. TYPEWRITER 



Part no. 106 

• Stand alone TVT 

• 32 char/line. 16 
lines, modifications 
for 64 char/line in- 
cluded • Parallel 
ASCII (TTL) input • 
Video output • 1K 
on board memory • 
Output for compu- 
ter controlled cur- 
ser • Auto scroll • 
Non-destructive curser • Curser inputs: up, down, left, 
right, home, EOL, EOS • Scroll up, down • Requires +5 
volts at 1.5 amps, and -12 volts at 30 mA • All 7400, TTL 
chips • Char. gen. 2513 • Upper case only • Board only 
$39.00; with parts $145.00 




TIDMA 



* 




Part no. 112 

• Tape Interface Direct Memory Access • Record 
and play programs without bootstrap loader (no 
prom) has FSK encoder/ decoder for direct con- 
nections to low cost recorder at 1200 baud rate, 
and direct connections for inputs and outputs to a 
digital recorder at any baud rate. • S-1 00 bus com- 
patible • Board only $35.00; with parts $110.00 



UART & BAUD RATE 
GENERATOR* 

Part no. 101 

• Converts serial to parallel 
and parallel to serial • Low 
cost on board baud rate 
generator • Baud rates: 110, 
150, 300, 600. 1200, and 
2400 • Low power drain +5 
volts and -12 volts required 

• TTL compatible • All characters contain a start bit, 5 to 
8 data bits, 1 or 2 stop bits, and either odd or even parity. 

• All connections go to a 44 pin gold plated edge connec- 
tor • Board only $12.00; with parts $35.00 with connector 
add $3.00 




8K STATIC 
RAM 




Part no. 300 

• 8K Altair bus memory 
Uses 21 02 Static memory chips • Mem- 
ory protect • Gold contacts • Wait states • On 
board regulator • S-1 00 bus compatible • Vector 
input option • TRI state buffered • Board only 
$22.50; with parts $160.00 



RF MODULATOR 



Part no. 107 

• Converts video to AM modu- 
lated RF, Channels 2 or 3. So 
powerful almost no tuning is re- 
quired. On board regulated 
power supply makes this ex- 
tremely stable. Rated very 
highly in Doctor Dobbs' Journal. Recommended 
by Apple. • Power required is 12 volts AC C.T., or 
+5 volts DC • Board $7.60; with parts $13.50 




RS232/TTY 
INTERFACE 



Part no. 600 

• Converts RS-232 to 20mA 
current loop, and 20mA current 
loop to RS-232 • Two separate 
circuits • Requires +12 and -12 
volts • Board only $4.50, with 
parts $7.00 




■ ' ■ © 



RS 232/TTL* 
INTERFACE 






Part no. 232 

• Converts TTL to RS-232, * 
and converts RS-232 to 
TTL • Two separate circuits * 

• Requires -1 2 and +1 2 volts 

• All connections go to a 10 pin gold plated edge 
connector • Board only $4.50; with parts $7.00 
with connector add $2.00 



ELECTRONIC SYSTEMS 



Dept. B, RQ Box 21638, San Jose, CA. USA 95157 



Mention part number and description. For parts kits add "A" to pari number. In USA, shipping paid for orders accompanied by check, money order, or 
Master Charge, BankAmericard, or VISA number, expiration date and signature. Shipping charges added to C.O.D. orders. California residents add 6.5% 
for tax. Outside USA add 1 0% for air mail postage, no C.O.D.'s. Checks and money orders must be payable in US dollars. Parts kits include sockets for all 
ICs, components, and circuit board. Documentation is included with all products. All items are in stock, and will be shipped the day order is received via 
first class mail. Prices are in US dollars. No open accounts. To eliminate tariff in Canada boxes are marked "Computer Parts." Dealer inquiries invited. 
24 Hour Order Line: (408) 226-4064 * Circuits designed by John Bell 



Circle 125 on inquiry card. 



BYTE August 1978 189 



What's New? 



Glitch Grabber Reduces Noise, Glitches, Jitter on S-100 Bus 




A board interconnection device that 
reduces noise, glitches and jitter on the 



S-100 microcomputer bus has been 
announced by Extensys Corp, 380 
Bernardo Av, Mountain View CA 94040. 
Called the Extensys Glitch Grabber, 
the board helps to clean signals on the 
S-100 bus. The device provides glitch- 
free signals by applying analog tech- 
niques from transmission line analysis. 
It plugs into any open slot on the S-100 
bus and features a proprietary self-regu- 
lating transistor network that controls 
voltages. The electronics are activated 
only when the glitch is there, to mini- 
mize any effects on S-100 bus signals. 
The price is $79.50." 

Circle 547 on inquiry card. 



Attention Chess Nuts 

The MACC-1 is a new companion to 
the Chess Challenger and is designed for 
advanced players. The unit will never 
play the same game twice and will not 
allow illegal moves including accidental 
moving into check. It does allow castling 
and pawn capture en passant. The pro- 
gramming concentrates heavily on im- 
proved end of game tactics and will not 
miss checkmate situations. Multiple 
levels of difficulty can be selected or 
changed at any time throughout the 
game. Chess problems may be set up 
quickly by telling the computer what 
pieces should be positioned, where they 
are to be placed, and the game starts 
from there. Any previous Chess Challen- 
ger may be upgraded to the MACC-1. 
This new unit is priced at $250. Contact 
Fidelity Electronics Ltd, 5245 Diversey 
Av, Chicago I L 60639." 

Circle 548 on inquiry card. 



SERVICE!!! 

TIRED OF WAITING 2 MONTHS? 

National 



CAN HELM! 



Your equipment is ordinarily on la way 
home within 5 days of Its arrival. 

SPECIALISTS IN SERVICING OF 

All S 100 Bus Micro Processors & Peripherals. TTL Cir- 
cuits. "Horn* Brew Projects", other Micro Processors. 
SALES 
NDD-380 S-100 Compulor $325 
We sell computer equipment from mijor manufecturers 
at the lowest prices in N.Y.C. 

We also sell previously owned microcomputers and peri 
pheralt at super low prices. 

We ere OPEN 7 DAYS A WEEK tor the 
the hobbyist and small businessman. 

MONFRI 5pm 7pm, SAT tOem-Spm. SUN 10am-2pm 

NATIONAL DIGITAL DIAGNOSTICS 

80 5th AVENUE. RM. 1206 

NEW YORK, N.Y. 10011 

(212) 929 1694 



, Circle 273 oh inquiry card. 



■ 




VeVe!. 




LEAR SIEGLER 


Xttv 
•X*X 


II 


ADM-3A CRT 
TERMINAL MOS- 


■ 


■eOT*!*' 


TEK Z-80 DEV. 
SYSTEM; EMU- 
LATOR AND 
FLOPPY DISC. 


m 


V •"•"••• 


BEST OFFER. 


: : x : x : 
:'xW 


'.•'.'VS.' 


♦x*:*x*:*:*:*:::*:*.:.:.' 
isss&mAsiAHaseet 


xWx 

,V#%Vi 


Inquiries are to be directed to: 


AMERICAN DIGITAL 


DEVELOPMENT, INC. 


2483 Devon Avenue 


Elk Grove Village. Illinois 60007 


(312) 860-2980 



COMPUTER 
MART OF 
MASSACHUSETTS 

Featuring a wide variety of 
program development systems. 

XITAN[TDL] DISK BASIC $159 

Now available for Z-80 based 
systems running CP/M. 

Ask us about the new XITAN 
GENERAL. 



COMPUTER MART OF MASSACHSITTS 
1097 Lexington SI. Waltham, Mi. 02154 
[617] 899-4540 



Circle 74 on inquiry card. 



PROGRAMMERS 

Ground floor opportunities exist for 
self-starters. System Software design 
for a 64 bit main frame computer 
based on the architecture for the 
80's. Current openings exist in: 

• Language Translation 

• Operating System 

• System Verification 

Call Mr. Jan Grondstra collect at 
(603) 882-1580 or, if you prefer, 
send your resume to his attention at 

Functional Automation, Inc. 

118 Northeastern Blvd. 

Nashua, NH 03060 

FUNCTIONAL 
AUTOMATION 



LSI-HAND 6800 
64KB MEMORIES 

CI-1103 — 8K words to 32K words in a 
single option slot. Plugs directly into LSI 
11, LSI 11/2, H11&PDP 1103. Address- 
able in 2K increments up to 1 28K. BK x 16 
$390.00. 32K x 16 $995.00 qry. one. 

CI-6800 — 16KB to 64KB on a single 
board. Plugs directly into Motorola's 
EXORcisor and compatible with the eval- 
uation modules. Addressable in 4K in- 
crements up to 64K. 16KB $390.00. 
64KB $995.00. 

CI-8080 — 16KB to 64KB on a single 
board. Plugs directly into Intel's MDS 
800 and SBC 80/10. Addressable in 2K 
increments up to 64K. 16KB $390.00. 
64KB $995.00. 

— ^ Tested and burned-in. Full year warranty. 

■i Chrislin Industries, Inc. 

^Zs Computer Products Division 

31312 Via Colinas • Westiako Village. CA 91361 
^^^^^^^^^1^91^254^^^^^^^^ 



Circle 51 on inquiry card. 




mum cftiNrri 

by Centronics 
"$"3^>- 

S339 



Have Hard Copy on your system at this 
amazing low price with all these features: 

• 150 lines per minute regardless of line 
length 

• 80 characters per line 

• 96 character set - upper and lower 
case 

• High reliability - only 4 moving parts 

• Lightweight - 10 lbs, desk-top size 
Model PI - parallel interface, TTL - $339 
Model SI - serial RS232C, to 9600 baud 
-$069 

NJ Residents add 5% tax. 

Send money order or certified check to: 

Kalin Associates 

65 Riverview Terrace 

Belle Mead, NJ 08502 (201 ) 874-4070 

Quantity discounts available. 



Circle 8 on inquiry card. 



Circle 142 on inquiry card. 



Circle 203 on inquiry card. 




^rp, F w/ o™i A "Smart" VIDEO BOARD 
1 he LW-2001 KIT At A "Dumb" Price! 

^jF A VIDEO BOARD + A MEMORY BOARD + AN I/O BOARD - ALL IN ONE! 



■ STATE OF THE ART TECHNOLOGY USING DEDICATED MICROPROCESSOR I.C. (jfe 1 Q Q Q ^ 

■ NUMBER OF I.C.s REDUCED BY 50% FOR HIGHER RELIABILITY ■ MASTER PIECE <tP J- -7 -7 • 37 «J 
OF ENGINEERING ■ FULLY SOFTWARE CONTROLLED Priced at ONLY Basic Software Included 

SPECIAL FEATURES: ■ Programmable no. of scan lines OPTIONS: 

■ S-100 bus compatible ■ Underline blinking cursor Sockets $10.00 

■ Parallel keyboard port ■ Cursor controls: up, down, left, 2K Static Memory 

■ On board 4K screen memory right, home, carriage return (with Sockets) $45.00 

(optional)* relocatable to main ■ Composite video 4K Static Memory 

computer memory *Min. 2K required for operation of this board. (with Sockets) $90.00 

■ Text editing capabilities (soft- DISPLAY FEATURES- Complete unit, assembled 
ware optional) — — ■ — — — — ' and tested with 

.Scrolling: up and down through " ™ ( £*3fi£KS*& /*~ •■•"•■ «35.00 

video memory numeric, controls) Basic software on ROM . $20.00 

■ Blinking characters a 34 or 32 characters per line Text editor on ROM .... $75.00 

■ Reversed video (jumper selectable) 

■ Provision for on board ROM ■ 32 or 16 lines 

■ CRT and video controls fully jumper selectable) 

programmable (European TV) ■ Screen capacity 2048 or 512 DEALER 

' ^dofmaTrix " 1 INQUIRIES WELCOMED 



8080 SUPPORT 

8212 $3.00 

8214 7.95 

8216 3.50 

8228 5.95 

8251 7.95 

8555 8.50 

1/4W RESISTOR 

10 Ohm- 1.5m 

$1.75/100 

of one value 



Pole lOPos. 
ROTARY 
SWITCH 
3 for $1.00 



1 Pole 8 Pos. 
T05 Miniature 
Rotary Switch 

3 for $1.00 



MINIATURE 

Slide Switch 

DPDT 

$.15; 10/$ 1.00 



Push Button 
Momentary 

Switch 
3 for $1.00 



8080 A 



CPU 

$7.75 



RAM-2II4 

1Kx4 450ns 
$8.00 



RIBBON CABLE 

32 Conductor 

26 AWG - $.60/Foot 



HEXADECIMAL 
LABEL KEYBOARD 

Matrix coded output 

Interfaces with 74C922 

for binary code 

Zero bounce 

Est. life: 100 million 

Remove back to stick on 



#ONLY 



ASCII 3rd GENERATION 

KEYBOARD KIT »«*.00 




SHIPPING: Keyboard and Video Board: $3.50; others: $1.25 
California residents add 6% sales tax 



ELECTRONICS WAREHOUSE Inc. 

1603 AVIATION BLVD. 
REDONDO BEACH, CA. 90278 

TEL. (213)376-8005 
WRITE FOR FREE CATALOG 

Minimum Order: $10 



it 



TTL Logic Circuits 
Power: +5V 275mA 
Upper and Lower Case 

Full ASCII Set (Alpha 

Numeric, Symbols, 

Control) 

7 or 8 Bits Parallel Data 

Optional Serial Output 

Selectable Positive or 
Negative Strobe, and 
Strobe Pulse Width 

'N' Key Roll-Over 

Fully Debounced 

Carriage Return Key 

Repeat Function Key 

Shift Lock, 2 Shift Keys 

4 User Defineable Keys 

P.C. Board Size: 
17-3/16" x 5" 



OPTIONS: 




■ Metal Enclosure 
Painted IBM Blue 
and White) 

■ 18 Pin Edge Con. 


$25.00 
$2.00 


■ I.C. Sockets 


S4.00 


■ Serial Output (Shift 
Register) 

■ Upper Case Lock 
Switch for Capital 
Letters and 
Numbers 


$2.00 
$2.00 


KIT INCLUDES: Keyboard, 
P.C. Board, all required com- 
ponents & assembly manual. 



NOTE: If you have this 63 
Key Teletype Keyboard you 
can buy the Kit without it 
for only $44.95. 



Circle 130 on inquiry card. 



BYTE August 1978 191 



What's New? 



PERIPHERALS 



Complete Monolithic 10 Bit Analog 
to Digital Converter 



DMA Interface for LSI-1 1 and 
LSI-11/2 




This general purpose DMA interface 
card is now available from Computer 



Technology, 6043 Lawton Av, Oakland 
CA 94618. The card features the follow- 
ing: dual height card (8.5 by 5 inches 
or 22 by 13 cm); bootstrap facility pro- 
vided for the user's programmable read 
only memory; ease of interfacing to the 
user's device by means of a buffered bi- 
directional data bus; allows direct pro- 
grammed 10 with five 16 bit read and 
write registers in the user's device; 
handles byte or word transfers at rates 
up to 400 K transfers per second; 
handles extended addressing up to 128 K 
words; burst mode capability; useful 
with floppy or hard disk controllers, line 
printers, interprocessor communication, 
data acquisition and many other high 
performance applications. Priced at $495 
from Computer Technology." 

Circle 584 on inquiry card. 



ASCII Keyboard in Kit or Assembled 




The Model 756 ASCII keyboard 
provides encoding for all 128 ASCII 
characters and control functions. Uti- 
lizing KBM Series keyswitches and low 
power MOS encoder circuitry, Model 
756 is designed to bridge the gap be- 



tween stripped down basic keyboards 
and custom models. Accessories include 
a numeric pad, custom cables and 
connectors. The new 702 enclosure 
features all steel construction and is 
supplied in a wrinkle finish to match 
modern hardware design. The interface 
allows user selection of parity, positive 
or negative logic data and strobe out- 
puts, alpha lock operation and both 
DC level and pulse strobe signals. A 
latching shift lock key is included and 
all outputs are TTL DTL MOS com- 
patible. The 756 carries a 90 day war- 
ranty. The price for the Model 756 kit 
is $64.95. The assembled and tested 
model retails for $75.95. The matching 
enclosure, Model 702, is $29.95. Contact 
George Risk Industries Inc, GRI Plaza, 
Kimball NB 69145." 

Circle 585 on inquiry card. 




I i»M(Miin 



This complete, 10 bit monolithic 
analog to digital converter combines 
linear and digital circuitry on a single 
integrated circuit chip. The AD571 
is produced using the integrated- 
injection logic (I^L) technique which 
allows very high circuit densities to be 
fabricated on a single chip. The AD571 
is also the first monolithic analog to 
digital converter to be laser wafer 
trimmed. The converter uses the suc- 
cessive approximation technique and 
includes a DAC, voltage reference, clock, 
comparator, successive approximation 
register and output buffer on a 120 by 
150 mil (30 mm by 38 mm) chip. The 
device executes a complete conversion 
to 10 bit accuracy ±1/2 Isb in 25 /js 
over the specified temperature range. 
The AD571 is available in three versions. 
For fully guaranteed 10 bit performance 
at 25 ' the least expensive is the J 
version. The K version provides 10 bit 
accuracy over the commerical temper- 
ature range of th.ru 70 °C. If you need 
a _ 55 to +125°C temperature range, the 
S version is your choice. AD571 is 
priced in 100s at $24, $35 and $60 for 
the J, K and S respectively. Contact 
Analog Devices Semiconductor, 829 
Woburn St, Wilmington MA 01887." 

Circle 587 on inquiry card. 



Video Terminal Board for Intel 
and National Computers 




The Datacube VT 103 Video Ter- 
minal Board interfaces directly to the 
system bus of the Intel SBC 80 Series 
and National BLC 80 Series. The board 
provides a 96 character ASCII subset 



in seven by nine font in a 64 character 
by 16 line format as a video signal to 
drive an external monitor. The board is 
addressed as an IO device and the device 
code programming is switch selectable. 
The unit provides direct cursor address- 
ing and 11 other cursor control func- 
tions. The Datacube VT 103 has an 
input port for an optional external 
keyboard. Use of the keyboard can re- 
place a Teletype or other terminals in 
many applications. Inputs for a strobe 
and seven data lines are provided at a 
26 pin PC edge connector along with 
a +5 and -12 V from the system bus for 
keyboard power. The composite video 
can drive a 75 ohm coaxial cable with 
a 1 .4 V peak to peak signal and meets 
RS420 standards. The board sells for 
$275 in lots of 100 and can be obtained 
from Datacube/SMK-1, 670 Main St, 
Reading MA 01867." 

Circle 586 on inquiry card. 



Where Do New Product Items 
Come From? 

The information printed in the 
new products pages of BYTE is 
obtained from "new product" or 
"press release" copy sent by the 
promoters of new products. If in 
our judgment the neat new whiz- 
bang gizmo or save the world 
software package is of interest 
to the personal computing experi- 
menters and homebrewers who 
read BYTE, we print the informa- 
tion in some form. We openly 
solicit such information from 
manufacturers and suppliers to 
this marketplace. The information 
is printed more or less as a first in 
first out queue, subject to oc- 
casional priority modifications. 



192 Auguit 1978 ©BYTE Publications Inc 



DIODES/ZENERS 


SOCKETS/BRIDGES 


TRANSISTORS. LEDS, etc. 




1N914 


100v 


10mA 


8-pin pcb .20 ww .35 


2N2222 


NPN (2N2222 Plastic. 10) 


.15 


1N4O05 


600v 




1A .08 


14-pin pcb .20 ww .40 


2N2907 
2N3906 


PNP 

PNP (Plastic - Unmarked) 


.15 
.10 


1N4007 


1000v 




1A .15 


16-pin pcb .20 ww .40 


2N3904 


NPN (Plastic - Unmarked) 


.10 


1N4148 


75v 


10m> 


18-pin pcb .25 ww .75 


2N3054 


NPN 


.35 


1N4733 


5.1v 


1 W 


Zener .25 


22-pin pcb .35 ww .95 


2N3055 


NPN 15 A 60v 

PNP Darlington 

Red, Clear, Yellow 


.50 


1N753A 


6.2v 


500 mW Zener .25 


24-pin pcb .35 ww .95 


T1P125 
LED Green, 


.35 
.15 


1N758A 


10v 




.25 


28-pin pcb .45 ww 1.25 


D.L.747 


7 seg 5/8" High com-anode 


1.95 


1N759A 


12v 




.25 


40-pin pcb .50 ww 1.25 


MAN72 


7 seg com-anode (Red) 


1.25 


1N5243 
1N5244B 


13v 
14v 




.25 

.25 


Mo lex pins .01 To-3 Sockets .25 


MAN3610 
MAN82A 


7 seg com-anode (Orange) 
7 seg com-anode (Yellow) 


1.25 
1.25 




2 Amp Bridge 100-prv .95 


MAN74A 


7 seg com-cathode (Red) 


1.50 


1N5245B 


15v 




.25 


FND359 


7 seg com-cathode (Red) 


1.25 










25 Amp Bridge 200-prv 1.95 








CMOS 






- T T L - 






4000 


.15 


7400 


.10 


7473 .25 


74176 .85 


74H72 


.35 


74S133 


.40 


4001 


.15 


7401 


.15 


7474 .30 


74180 .55 


74H101 


.75 


74S140 


.55 


4002 


.20 


7402 


.15 


7475 .35 


74181 2.25 


74H103 


.55 


74S151 


.30 


4004 


3.95 


7403 


.15 


7476 .40 


74182 .75 


74H106 


.95 


74S153 


.35 


4006 


.95 


7404 


.10 


7480 .55 


74190 1.25 






74S157 


.75 


4007 


.20 


7405 


.25 


7481 .75 


74191 .95 


74 LOO 


.25 


74S158 


.30 


4008 


.75 


7406 


.25 


7483 .75 


74192 .75 


74L02 


.20 


74S194 


1.05 


4009 


.35 


7407 


.55 


7485 .55 


74193 .85 


74L03 


.25 


74S257 (8123) 


1.05 


4010 


.35 


7408 


.15 


7486 .25 


74194 .95 


74L04 


.30 






4011 


.20 


7409 


.15 


7489 1.05 


74195 .95 


74L10 


.20 


74LS00 


.20 


4012 


.20 


7410 


.15 


7490 .45 


74196 .95 


74L20 


.35 


74LS01 


.20 


4013 


.40 


7411 


.25 


7491 .70 


74197 .95 


74L30 


.45 


74LS02 


.20 


4014 


.75 


7412 


.25 


7492 .45 


74198 1.45 


74L47 


1.95 


74LS04 


.20 


4015 


.75 


7413 


.25 


7493 .35 


74221 1.00 


74L51 


.45 


74LS05 


.25 


4016 


.35 


7414 


.75 


7494 .75 


74367 .75 


74L55 


.65 


74LS08 


.25 


4017 


.75 


7416 


.25 


7495 .60 




74L72 


.45 


74LS09 


.25 


4018 


.75 


7417 


.40 


7496 .80 


75108A .35 


74L73 


.40 


74LS10 


.25 


4019 


.35 


7420 


.15 


74100 1.15 


75491 .50 


74L74 


.45 


74LS11 


.25 


4020 


.85 


7426 


.25 


74107 -25 


75492 .50 


74L75 


.55 


74LS20 


.20 


4021 


.75 


7427 


.25 


74121 .35 




74L93 


.55 


74LS21 


.25 


4022 


.75 


7430 


.15 


74122 .55 




74L123 


.85 


74LS22 


.25 


4023 


.20 


7432 


.20 


74123 .35 


74H00 .15 






74LS32 


.25 


4024 


.75 


7437 


.20 


74125 .45 


74H01 -20 


74S00 


.35 


74LS37 


.25 


4025 


.20 


7438 


.20 


74126 .35 


74H04 .20 


74S02 


.35 


74LS38 


.35 


4026 


1.95 


7440 


.20 


74132 -75 


74H05 .20 


74S03 


.25 


74LS40 


.30 


4027 


.35 


7441 


1.15 


74141 .90 


74H08 .35 


74S04 


.25 


74LS42 


.65 


4028 


.75 


7442 


.45 


74150 .85 


74H10 .35 


74S05 


.35 


74LS51 


.35 


4030 


.35 


7443 


.45 


74151 .65 


74H11 .25 


74S08 


.35 


74LS74 


.35 


4033 


1.50 


7444 


.45 


74153 .75 


74H15 .45 


74S10 


.35 


74LS86 


.35 


4034 


2.45 


7445 


.65 


74154 .95 


74H20 .25 


74S11 


.35 


74LS90 


.55 


4035 


.75 


7446 


.70 


74156 .70 


74H21 .25 


74S20 


.25 


74LS93 


.55 


4040 


.75 


7447 


.70 


74157 .65 


74H22 .40 


74S40 


.20 


74LS107 


.40 


4041 


.69 


7448 


.50 


74161 .55 


74H30 .20 


74S50 


.20 


74LS123 


1.00 


4042 


.65 


7450 


.25 


74163 .85 


74H40 .25 


74S51 


.25 


74LS151 


.75 


4043 


.50 


7451 


.25 


74164 .60 


74H50 .25 


74S64 


.15 


74LS153 


.75 


4044 


.65 


7453 


.20 


74165 1.10 


74H51 .25 


74S74 


.35 


74LS157 


.75 


4046 


1.25 


7454 


.25 


74166 1.25 


74H52 .15 


74S112 


.60 


74LS164 


1.00 


4049 


.45 


7460 


.40 


74175 .80 


74H53J .25 


74S114 


.65 


74LS193 


.95 


4050 


.45 


7470 


.45 




74H55 .20 






• 74LS367 


.75 


4066 
4069/74 C04 


.55 
.25 


7472 


.40 










74LS368 


.65 










4071 


.25 




MCT2 .95 LINEARS, REGULATORS, etc. 






4081 


.30 




8038 3.95 


LM320T5 1.65 


LM340K15 


1.25 


LM723 


.40 


4082 


.30 




LM201 .75 


LM320T12 1.65 


LM340K18 


1.25 


LM725N 


2.50 


MC 14409 14.50 




LM301 .45 


LM320T15 1.65 


LM340K24 


1.25 


LM739 


1.50 


MC 14419 


4.85 




LM308 (Mini) .95 


LM324N 1.25 


78L05 


.75 


LM741(8-14).25 


4511 


.95 




LM309H .65 


LM339 .75 


78L12 


.75 


LM747 


1.10 


74C151 


1.90 




LM309K (340K-5i85 


7805 (340T5) .95 


78L15 


.75 


LM1307 


1.25 








LM310 85 


LM340T12 .95 
LM340T15 .95 


78M05 


.75 


LM1458 


.65 


9000 SERIE 




LM311D(Minn .75 


LM373 


2.95 


LM3900 


.50 


9301 .85 


95H03 


1.10 


LM318(Mini) 1.75 


LM340T18 .95 


LM380(8-14pin).95 


LM75451 


.65 


9309 .35 


9601 


.20 


LM320K5(790S}1.65 


LM340T24 .95 


LM709(8,14pin).25 


NE555 


.35 


9322 .65 


9602 


.45 


LM320K12 1.65 


LM340K12 1.25 


LM711 


.45 


NE556 


.85 

.95 

1.25 

.95 


MICRO'S, RA 
E-PRC 

74S188 3.00 
1702A 4.50 


MS, C 
>MS 

8214 
8224 


PU'S, 

8.95 
3.25 


INTEGRATED CIRCUITS UNLIMIT 


ED 


NE565 
NE566 
NE567 








MM5314 3.00 


8228 


6.00 


7889 Clairemont Mesa Boulevard, San Diego, California 92V 




MM5316 3.50 
2102-1 1.45 


8251 
8255 


8.50 
10.50 


(714) 278-4394 (Calif. Res.) 


SPECIAL 
DISCOUNTS 


2102L-1 1.75 


8T13 


1.50 


All orders shipped prepaid No minimum 


Total Order 


Deduct 


2114 9.50 


8T23 


1.50 


Open accounts invited COD orders accepted $35 -$99 


10% 


TR1602B 3.95 
TMS4044- 9.95 


8T24 
8T97 


2.00 
1.00 


Discounts available at OEM Quantities California Residents add 6% Sales Tax *J£° " ^^2„ 


15% 
20% 




2107 


3-4 4.95 


All IC's Prime/Guaranteed. All orders shipped same day received. 


3>ou i - q> iuuu 


8080 8.95 
8212 2.95 


2708 
Z80F 


9.50 
10 8.50 


24 Hour Toll Free Phone 1-800-854 221 1 American Express / Batik Americarrt / Visa / MasterCharge 



Circle 180 on inquiry card. 



BYTE August 1978 193 



MICROPROCESSOR COMPONENTS 



The Incredible 
"Pennywhlstle 103' 




ELPAC 

POWER 

SUPPLIES 



Completely Assembled 
SPECIFICATIONS: 

10S-125/210-250 Vic, 47-440 H: Input: 

Line Regulation ±0.1% 

r0.1%no-load la rated-load 
±0.1%p-p,dcto 10MH2 
100 megohm dc. 900 Vac 
35% raled current 

RATINGS PRICE 



Load Regulation 
Output Ripple and Noise 
Input/Output Isolation 
Short Circuit Current 

PART NO. 



WAITS VOLTS AMPS 

SOLV15-5 - 15 5 3 $36.95 

SOLV15-12 - 15 12 15 36.95 

SOLV30-5 30 5 6 59.95 

S0LV30-12 30 12 3 ' 59.95 

OVP1 over voltage protection tor SOLV30-5.-12 9.95 
■S0LV15-5. 12 includes OVP Instalhd 



NEW! BULB-ENERGY SAVER 



w 



Bulb lasts 3 or 
mare times longer 
Fits Standard Socket 
6 watts to 200 watts 



BES-1 



1.39 ea. 



10+ 
1.20 



BULB-ENERGY SAVERS used for years by 
major industrial users — now available lor 
home or office use Bulb Saws can cut elec- 
trical bills by as much it 3*x> 
BULB-SAVERS lengthens ligtit life by: 

t. Acting as an electrical 'shock absorber". 
turns the bulb on Slowly, eliminating the 
Thermal shock". Bulb ll(e increases 300 per- 
cent. 

2. Banishes Current "Surges' Cushions line 
voltage surges when other loads cut power 
ine. 

3. Reduces Energy Consumption 



P8085 CPU $29.95 

fiOSGA CPU 10.95 

8212 8-Bit Input/Output 4.95 

8214 Priority Interrupt Control 7.95 

8216 Bi -Directional But Driver 4.95 

8224 Clock Ganerator/DriVBT 5.95 

8228 System Controller/Bus Driver 5.95 

8251 Prog. Comm. Interlace 9.95 

8255 Prop. Periph. Interface 10.95 



CDP1802 CPU 

Z80 CPU 

2650 MPU 

MC6800 MPU 

MC6810API 128 x 8 Static Ram 

MC6820 Periph. Interface Adapter 

MC6821 Periph. Interlace Adapter 

MC6830LB 1024x8 Bit ROM 



$19.95 
24.95 
26.50 
19.95 
5.95 
7.96 
11.50 
14.95 



MC6850 Asychronous Comm. Adapter 14.95 



tot 
1103 
2101 
Z102 

2107/5280 
2111 
2112 
2114 
21ML 
2114-3 
21HL-3 
7469 
BtOl 
8111 
8599 
21L02 
74200 
9342) 



258 



RAM'S 

1 Static 
x 1 Dynamic 
4 Static 

x t Static 
x 1 Dynamic 
4 Static 
;4 Static 
Static 450ns 



6.05 
5.95 
9 95 



MK4027 II 



IK4027 (UPD4M) 4 

MK4116(UPD416) 1 

TMS4044-45NL 4 



35 



1 Static 450ns Low Power 10 9: 

4 Static 300ns 10.95 

4 Sialic 300ns Low Power 11.95 

4 Static 1.75 

< 4 Static 5.S5 

<4 Sill:: 6 95 

4 Static 3.49 

x I Static 1.S5 

« t Static 5.95 

« 1 SQitC 



I Dyna mic "38 

mm tt m — 



KB 

29.95 



ROM'S 
2513(2140) Character Generator (upper cau) 
2513(3021) Chirader Generator (tower case) 
2516 Chancier Generator 

MM5230N 2048 Bit Read Only Memory 

USER MANUALS 
1B02M COPI802 Manual 
ZOOM 280 Manual 
2BS0M 2650 Manual 





PROMS 


1702A 


2048 x 1 


famous 


5203 


2048 x 1 


Famous 


B2S23 


32x8 


OpenC 


82S115 


4096x1 


Bipolar 


82S123 


32x8 


Tristate 


74S287 


1024 x 1 


Sialic 


2706 


8K 


EPROM 


2716 T.I. 


16K 


EPROM 


2716 Intel 


16K 


EPROM 


6301-1 


1024x1 


tm -State Bipolar 


6330-1 


256x1 


Open C Bipolar 


741B6 


512x1 


TTl Open Collector 


74188 


256x1 


TTL Open Collector 




SHIFT REGISTEHS 


MM5013N 


1024 BrtAccumutitor Dynamic 


MM5016H 


500/512 Bit Dynamic 


MM5017N 


Oust 500/512 Bit Dynamic 


J504T 


1024 Oyna 


M 


2518 


Hex 32 Btl Static 


2519 


Hex 40 Btl Static 


2522 


Ouai 132 Bit Static 


2524 


512 Dynamic 


2525 


1024 Dynamic 


2527 


Dual 256 Bit Stahc 


2528 


Dual 250 Sialic 


2529 


Dual 240 Bit Static 


2532 


Ouad 60 Bit Static 


2533 


1024 Stati 




3341 


Frio 




74LSG70 


4X4 Register 



10.95 
29.95 
59.95 



U ART'S 
30K BAUO 



PART NO. 



CRYSTALS '&?- 

THE*E FREnHENdf-S nm v sfituK — — 



THESE FREQUENCIES ONLV 
FREQUENCY CASE 



CY1A 

CY1.84 

CY2A 

CY2.01 

CY2.50 

CY3.27 

CY3.57 

CY3A 

CY4.91 

CY7A 

CY5.18 

CY6.14 

CY6.40 

CY6.55 

CY12A 

CY14A 

CY19A 

CY18.43 

CY22A 

CY30A 



1 O00MH; 

I.8432MH! 

2.000MH2 

2.010MHz 

2.500MHz 

3.2768MHz 

3.579545MHz 

4.000MHz 

4.916MHz 

5.000MHz 

5 185MHz 

6.144MHz 

6.400MHz 

6.5536MHz 

10.000MHz 

14.31818MHz 

18.000MHz 

18.432MHz 

20.000MHz 

32.000MHz 



HC33 
HC33 
HC33 
HC33 
HC33 
HC33 
HC33 
HC18 
HC18 
HC18 
HC18 
HC18 
HC18 
HC18 
HC18 
HC18 
HC18 
HC18 
HC18 
HC18 



5.95 
5.95 
5.95 
1.95 
4.95 
4.95 
495 
4.95 
4.95 
4.95 
4.95 
4.95 
4.95 
4.95 
4.95 
4.95 
4.95 
4.95 
4.95 
4.95 



Assurance values 



TRIMMERS 

1QMM size trimmers -.394" Ola. 
Part No. 1-9 10-24 25-49 100+ 
TR-11(valve).35 .30 .25 20 

100, 50O. IK, 2K. 5K, 10K. 20*. SDK. 100K. 200K. 1 meg 



Analyzes any type ot digital system 
Checks data rates in excess ot 8 
million words per second 

• Trouble shoot TTL. CMOS, DTL. RTL. 
Sctiottky and MOS families 

Displays 16 logic states up to 8 digits wide 

• See ones and zeros displayed on your 
CRT. octal or hexadecimal format 

t Tests circuits under actual operating conditions 
Easy to assemble — comes with step-by-step construction 
manual which includes 80 pages on logic analyzer operation. 
(Model 100A Manual - $4.95) 



TRIMPOTS 

Single-Turn - 1/2 Watt 

Square - Top Adjust - 3/8" Slza 

Part No. t-9 10-24 25-49 50-99 
63P(value) .99 .89 .80 .70 

Resistance Values -50 100. 500. IK 2K. 5K. I0K. 20K. 50K. I00K. ZOQK. 50OK. 1 meg 




15 -Turn • 3/4 Watt 

Rectangular Side Adjust 3/4" x 1/4" Size 

Part No. 1-9 10-24 25-49 50-99 

43P(value) 1.35 1.25 1.20 1.15 

Resistance Values - SO. 100. 5O0. IK. 2K, SK. I0K. 20K. SOK. 100K. Z0OK, 5O0K, t meg 



*Tfcgfr- 



1/16 VECTOR BOARD 



Pari No 

64P44 062XXXP 
169P44 062XXXP 
64P44 062WE 
S4P44 062WE 

169P44 0G2WE 
169P84 062WE 
169P44 062WEC1 



17.00 389 

6.50 2.07 

8.50 256 

17,00 5.04 



4. S3 
8.26 
6.12 



CONNECTORS 

25 Pln-D Submlnlature 



D825P(as pictured) PLUG $3.25 

DB258 SOCKET 4.95 

DB81226-1 Cover lor OB25 P or S 1.75 



MOLEX CONNECTOR PINS 




M-530-1 



$1.95/100 pins 
(minimum order) 
$16.00/1000 pins 



INSTRUMENT/ 
CLOCK CASE 

Injection molded unit. 
Complete with red bezel. 
\4Vi"x 4- x 1-9/16*. 

V $3.49 




TELEPHONE 
KEYWAHO CMPI 
AY-S-9100 $14.95 
AY-5-92O0 14.95 
AY-S-9500 4 95 
AY-5-2376 14.95 
HD0165 795 

74CB22 995 



SPECIAL REQUESTED 



19 96 



HMOS READ ONLY 
MEM04KS 

MCM6571 $13 50 
MCM6574 13 50 
MCM6575 13.50 



ITEMS 

MISCELLANEOUS 



ICM7205 

ICM7207 

ICM720B 19 95 

ICM7209 6 95 

] TV BAME CHIP SET 1 

1AY-3-85O0-1 ChtoanrJ 2 010 MH2 Crystal $7,951 



11C90 $19.95 MK4O240 $17.50 

MC3061P 11 95 DS0O26CH 3.75 

MC1408L7 4.95 TIL308 10.20 

MC1408L8 575 95H90 11.95 

LIU 10/ 1 11 S25.00/Stt 

MC4016I74416) 7.50 

4M33 3 95 



PARATRONICS 
Logic Analyzer Kit 
Model 100A 

$229.00/kit 



• ■>■■■■• •••• an 



$129.95 



Kit Only 




n»i PBneywMalla 103 Is capaMe ot recording data to and from audio tape without 
critical speed requirements tor the recorder and H is able to communicate directly 
with another modem and terminal tor telephone "hamming" and communications 
lor the deal, in addition, it Is tree ot critical adjustments and is ouih with rjon-predsron. 
readily avai la hie pans 
Data Tram minion Method frequency -ShiU Keying. lull-duplex (hatl-duplet 

selectable). 

Mailmam Data Rate 300 Baud. 

Oata Formal Asynchronous Serial (relurn lo mark level required 

between each character!-. 
fUcehra Channel Freqteeclu . . .2025 Hi lor space; 2225 Hi lor mark 
Transmit Channel Frequencies ..Switch selectable: Low (normal) ■ 1070 space. 

1270 mark High ■ 025 space. 2225 mark 

Receive Sensitivity - 4$ dbm aecousttcally coupled. 

Transmit Level - 15 dbm nominal. Adjustable Irom -6 dbm 

lo-20 dbm 
Receive Frequency Tolerance . . .Frequency reference automatically adjusts lo 

allow for operation between 1 BOO Hz and 2400 Hi 
Digit j I Dale Inlertace EIA RS-232C or 20 mA current loop (receiver Is 

optoisolated and non-polar) 

Pewer Requirements 120 VAC, single phase. 10 Watts. 

Physical All components mount on e single 5" by 9" 

printed circuit board. Alt components included. 
Repines a VOM, Audio Oscillator. Frequency Counter ana/or Oscilloscope 10 align 




the 3 rd Hand 

$9.95 each 

•Leaves two hands free for 
working 

* Clamps on edge of bench, table 
or work bench 

' Position board on angle or tlat 
position for soldering or clipping 

* Sturdy, aluminum construction 
for hobbyist, manufacturer or 
school rooms 



DIGITAL STOPWATCH 



Some applications are 

- Troubleshooting microprocessor 
address, instruction, and data flow 

- Examine contents of ROMS 

- Tracing operation of control logic 

- Checking counter and shill 
register operation 

- Monitoring I/O sequences 

- Verifying proper system operations 
during testing 



PARATRONICS TRIGGER EXPANDER - Modal 10 

Adds 16 additional bits Provides digital delay and qualification of input c 
and 24-bit trigger word . — Connects direct to Model 1 0OA for integrated ui 



Model 10 Kit - $229.00 

Baseplate — M.95 
Model 10 Manual -$4.95 



RfT4J;IWS!?K 




Model 2800 
$99.95 

Ccmes with rest 
leads, operating manual 
ana spam luse 



3'A-Olgll Portable OMM 

• Overload Protected 

• 3 <'■■;;!■ It'! Display 

• Baitery or AC operation 

■ Aulo Zeroing 

• Imv. iVa. 1 ohm resolution 

• Overange reading 

• 10 meg input impendence 

■ DC Accuracy IS typical 
Rang.** DC Voltage -0-I00OV 
AC Voltage 0-iQOOV 

Freq Response 50-400 HZ 
0DAC Current 0- 1 00mA 
Resistance 0-tOmegohm 
Sue 6 4- 1 4 4" a T 

Accessorial: 
AC Adapter BC-28 $9.00 
Rechargeable 

Batteries BP-26 20.00 
Carrying Case LC-2B 7.60 



100 MHz 8-Digit Counter 

■ MHi.100 Mm Range , Four power souces, I.e. 

• .6" LED Display baneries, 110 or2Z0Vw.tTi 

■ Crysui-eontroBed irmebase charger 12V wllh auto 

• Fully Automatic liQhtctr adapter and external 

■ Portable - completely 7.2-I0V power supply 

.Sr.T?,, 3 r "a*"" $134.95 

I5.63 - 

ACCESSORIES FOR MAX 100: 

Mobile Chargor Ellmlnner 

uM power Irom r.ir battery Modal 100 — CLA 1 

Cltarnsf/Ellminator 

UN 110 V AC Mod.l 100 - CAI | 



63-Key Unencoded I KEYBOARDS | Hexadecimal Encoder 




This is a 63-key, terminal keyboard newly 
manufactured by a large computer manufac- 
turer. It Is unencoded with SPST keys, unat- 
tached to any kind of PC board. A very solid 
molded plastic 13x4" base suits most applica- 
tion. IN stock $29.95/each 




19-key pad Includes 1-10 keys, 
ABCDEF and 2 optional keys and a 
shift key. $10.95/each 



$6.00 Minimum Older - U.S. Fundi Only 
California Residents - Add 6% Salei Tax 




Spec Shoots - 2U 

1978A Catalog Available-Sent! 35ii stamp 



PHONE 

ORDERS 
WELCOME 



. 4..uia>> X JAMU r!.K-n>.ONIC« * CJofcjnili 



(415)592-8097 



MAIL ORDER ELECTRONICS - WORLDWIDE 

1021 HOWARD AVENUE. SAN CARLOS, CA 94070 
Advertised Prices Good Thru August 



■ Bright 6 Digit LED Display 

• Times to 59 minutes 59 59 seconds 

• Crystal Controlled Time Base 

• Three Stopwatches in One 

Times Single Event — Sunt S TiytO' 

■ Site 4 5 *2>5 i 90 (4 1) ounces) 

• Uses 3 Penlite Cells 

Kit — S39.95 

Assembled — $49.95 
Heavy Duty Carry Case 55.95 



Slop Watch Chip Only (720S) $19.95 




3 y 2 DIGIT DPM KIT 



ffc 



New Bipolar Unit • Auto Polarity 

• Auto Zeroing • Low Power 

• .5" LED . Single IC Unit 
Model KB500 DPM Kit $49.00 
Model KB503 5V Power Kit $17.50 




JE700 CLOCK 

the j[ 71)0 >s 3 low cost digital ctort Dui 
is a very high quality unit The unii Ira 
lures a simulated Wriinut cast with ■.-■ 
mens.onsoi6 ■.?•.• il K utilizes a 
MAfi72hignorightness readout and i he 
MMS3M dock chip 



115 VAC 



KIT ONLY 



$16.95 



JE803 PROBE 

The logic Piobe i| a unit wnicn a tor inr most part 
■ndes pensile rn irouOie shoot mg iogn families 
TTL OTl RTL CMOS it derives Ihe po*ei it 
needs to operale d»eoiy otr ot me cucuii unde' 
lesi dra*mg a scanl 10 mA mai li uses a MAN3 
readout lo mOtcate any ot me tomwrng stales Ot 
these symtjols tHi 1 iLOWi o iPULSE) P The 
Prooe can deieci high Irequency pulses to J5 Mhi 
it can i Be used at MOS levels o< cucjil damage 
will result 




$9.95 Per Kit 

Drinted circuit board 




PL 5V 1A Supply 

This is i slandaid TTL POwei supply usng the well known 
LM309K regulator iC to piovkde a solid i AMPof cuirentat i 
volts We rry to nuke things easy tor you By providing 
everything you need in one package including the harOware 

..or* JE225 S9.gs per Kit 



PROTO BOARDS 



PROTO BOARD 6 

$15.95 

(6' long X 4" wide) 




4.5" X 6" 
5.6" X 4.5" 
7" X4.5" 
9" x 6" 
9.5" X 8" 
9.75 x 6'/i x 2V< 



PB100 
PB101 

PB102 

PB103 

PB104 

PB203 

PB203A - 9.75 x 6Vi 

(mdudes power supcjyl 



$ 19.95 
29.95 
39.95 
59.95 
79.95 
80.00 



iiiiiiinmjii 
f 



muiMUU PROTO CUPS 

-'jg' L Um W.50 



ttitlliiiiii 



I 



16 PIN 
24 PIN 
40 PIN 



4.75 
8.50 
13.75> 



194 BYTE August 1978 



Circle 200 on inquiry card. 



5N7400N 
SN7401N 
SN7402N 
SN7403N 
SN7404N 
SN740SN 
SN7406N 
SN7407N 
SN740SH 
SN7409N 
SN74I0N 
SN7411N 
SN7412N 
SN7413N 
SN7414N 
SN74I6N 
SN7417N 
SN7420N 
SN7421N 
SN7422N 
SN7423N 
5N74J5N 
SN7426N 
SN7427N 
SN7429N 
SN7430N 
SN7432N 
SN7437N 
SM7438N 
SN7439N 
SN744QN 
SN744IN 
SN7442N 
SN7443N 
SN7444N 
SH7445N 
SN7446N 
SN7447I* 
SN744SN 
SN74SON 
SN74SIN 
SN7453N 
SN74S4N 
SN7459A 
SN7460N 
SN7470N 



CQ4000 
C0400I 
CD4Q02 

co4ooe 

CO-iW? 
CD4009 
CD-iOlO 
CD40I 1 
CLM012 
CO40I3 
CD40I4 
CD4Q15 
CD4016 
C04017 
C04QIB 
C04019 
CD4020 
CD40?t 
CD4022 
CD4023 
CDJ024 
CQ4025 
CD4026 

C34Q?; 



■Tclfr 

7KQ2 
T4C0J 

,-jcob 

■1C1Q 
74C11 
TJC20 
74C30 
74C42 

rjc-m 

7JC73 



iM3UUH 

LM30IH 

LM.101CN 

LM302H 

LM304K 

IM305H 

LM307CN H 

LM3QBH 

LM308CN 

LM309M 

LM3.09K 

LM310CN 

LM31IM 

LM3I1N 

IM3I7K 

LM318CN 

LM319N 

LM32QK.5 

LM320X,'5 2 

LM320KI7 

LM320KIS 

LM320K 18 

LM320K-24 

LM320T 5 

LM320T-5 2 

LM3201-8 

LM320T-I? 

LM320M5 

LM320T-18 

LM320T-24 

LM323K-5 

LM324N 

LM339N 

LM340K-S 

LM340K-6 

LM340KB 

LM340K1? 

LM340K-15 

LM340K It 

LM340K-24 

LM340I-S 

IMJ4QI 6 



7400 TTL 



^SB 



SN7472N 

SN7473N 
SN7474N 
SN7475N' 
SN7476N 
SN7479N 
SN74B0N 
SN7432N 
SN7463N 
SN7485N 
SN7486N 
SN7489N 
SN7490N 
SN749IN 
SN7492N 
SN7493N 
SN7494N 
SN7495N 
SN7496N 
SN7497N 
SN74I0ON 
SN74I07N 
SN74109N 
SN741I6N 
SN7412IN 
SN74122N 
SN74123N 
SN7412SN 
SN7412BN 
SN74132N 
SN74138N 
SN74141N 
SN74142N 
SN74143N 
SN74144N 
SN74U5N 
SN74147N 
SN74I48N 
5N74IMN 
SN741S1N 
SN74153N 
SN74154N 
SN741S5N 
5N74156N 
SN74157N 



C/MOS 



C04028 
CD4029 
C04030 
CD4035 
CD4040 
CD4041 
C04Q42 
CD4Q43 
CD4D44 
CD4046 
C04(M7 
CO-KJJa 
C04049 
CQ4Q50 
CD4051 
C04053 
C040S6 
CDJ059 
CD4Q60 
CD4066 
C04068 



74C00 



74C89 
74C9Q 
74C93 
74C9S 
74C107 
74C151 
74CI54 
/4C157 
74CI60 
■■iCIbl 



LINEAR 



LM140T-B ! 25 
LM34QT-12 1 25 

LM340M5 ■ 25 
LM340M6 1 25 
LM34QT-24 125 
LM350N I 00 

LM351CN 65 

IM370N 1 IS 

LM373N 
LM377N 
LM38QN 
LM3B0CN 
IM381N 



325 

J 00 

t.zs 



LM382N 

NE50IN 

NE510A 

NE529A 

NE531H 

NES36I 

NE540L 

NE5S0N 

NE555V 

NE556 

NE560B 

NE561B 

NE562B 

NES65H 

NE565N 

NE566CN 

NE567H 

NE567V 

NE570 

LM7Q3CNH 

LM709H 

LM709N 

LM710N 

LM711N 

IM723H 

LM723N 



1 79 



_ 



SN74160N 
SN74161N 
SN74162N 
SN74163N 
SN74164N 
SN74165N 
SN74I66N 
SN74167N 
SN74170N 
SN74I72M 
SN74173N 
SN74J74N 
SN74175N 
SN74176N 
SN74177N 
SN74179N 
SN74180N 
SN74I81N 
SN74182N 
SN74184N 
SN74185N 
SN74186N 
SN74188N 
SN74190N 
SN74191N 
SN74192N 
SN74193N 
SN74194N 
SN74I95N 
SN74I96N 
SN74I97N 
SN74198N 
5N74199N 
SN7420W 
SN74251N 
SN74279N 
SN74283N 
SN74284N 
SN74285N 
SN74365N 
GH7436GN 
SN74367N 
SN74368N 
SN74390N 
SN74393N 



~73TiSr 

7IC164 
74CI73 
71C192 
74CI93 
7-1C195 
TJC922 
TJC923 
74C925 
74C926 
80C95 
MC97 



LM733N 
LM739^ 
LM74ICH 
LM74ICN 



CD4070 55 

CD407I 23 

CQ4072 49 

CD4076 1 39 

C04081 23 

CD4082 23 

C04093 99 

CD4(B8 2 49 

MCI4409 '4 95 

MCI4410 14 95 

MC14411 14 95 

MC14419 4 95 

MCM433 19 95 

MCI4506 75 

MC14507 99 

MCM562 14 SO 

MC14583 3 50 

CD4508 3 95 

CDJ510 1 39 

C0-I5I1 1 29 

CD45I5 2 95 

CD4S18 1 29 

C04520 1 29 

C04566 2 25 



260 
3 49 

2 75 
2 75 



35 



IM74! UN 39 

LM747H 79 

LM747N 79 

LM748H 39 

LM748N 39 

LM1303N 90 

LMI304N 1 19 

LM1305N 1 40 

IM1307N B5 

LMI310N 2 95 

LMI3S1N 1 85 

LM1414N 1 75 

LMI458CNH S9 

MC148B 1 95 

MCI 489 1 95 

LM1496N 95 

LM 1556V 1 75 

MCI74ISCP 3 00 

LM2901N 2 95 

LM3053 1 50 

LM306SN 69 
LM3900N(3401| 49 

LM3905N B9 

LM3909 1.25 

MCS55BV 100 

LM7525N 90 

LM7S34N 75 

B038B 495 

LM 75450 49 

7545 1CN 39 

75452CN 39 

75453CN 39 

75454CN 39 

7S491CN 79 

7S492CN .69 
75494CN 
RC4151 
HC4194 
RC4195 



.89 

595 



74LS00 
74LS0I 
74LSO? 
74LS03 
74LS04 
74LS05 
74LS0B 
74LS09 
74LS10 
74LS13 
74LS14 
74LS15 
74LS20 
74LS21 
74LS22 
74LS26 
74LS27 
74LS2S 
74LS30 
74LS32 
74LS37 
74LS40 
74LS42 
.74LS47 



74LS00 TTL 



74LS5t 
74LS54 
74LS55 
74LS73 
74LS74 
74LS75 
74LS76 
74LSB3 
74LS85 
74LSS6 
74LS90 
74LS92 
74LS93 
74LS95 
74LS06 
74LS107 
74LS109 
74LS112 
74LS123 
74LS132 
74LS136 
74IS138 



74LSI39 
74LS151 
74LS155 
74LSI57 
74LS160 
74LS161 
74LS162 
74LS163 
74LS164 

mam 

74L5181 
74LS190 
74LSI91 
74LS192 
74LS193 
74LS194 
74LS195 
74LS253 
74LS257 
74LS260 
74LS279 
74LS367 
74LS368 
74LS670 



BUGBOOK 

Continuing Education Series 

^^« <•■■ 




II ctnp — ihii ih troponin) 



THE 555 TIMER APPLICATIONS 
SOURCEBOOK WITH EXPERIMENTS 
by Howi'dM. Bi(llnW3HB 



n IKtwquel Nuilofli Jrid grjjyii id cieilt iiiJ/Id-JO DOM Ct 
i pom' (uogim mtiiijiTrotnl md conlro' ci'iiWi wny unquo > 
lB< int ncrot ma njicnoettt pftoingiipft, mmic inn grom] 



16.95 BUOHOK HI S15.H 

*f Hitt H. AMf. OiiU C Lirti. Wt4NTi. Jmitsw A. Tttn 
Hire n nit took thil pun ii in togtiitt' B««M having much vtfujtile K 
id in nvti Ihgti up i um\ ol tipwiments id wluch IIM leidir f ompniel. •ipkini II 
) iw In pm ma mtiMuMi rvu 'o 'nt Mirt SO minoconputti 
iiihj inttifiwa tysitm II il rtwnmtntlta Iht: »eu Uvp IDs Mel 
< Iht BUG8O0KS 1 1 II Sriut pi(KMd-ng *.tii BUGBOOK 111 



INSTRUCTOR S MANUAL S3.0D 

Ntcatury lot nuiucnon ol Suotooi I ina n 4niix^ aunnont 'tgiiiling 
cipt'untms su((«!«yn k» luitntr lud.ng pti«otapn r pl ijir^ri ipoioacnio 
atgitii ■kttiion.el A rout' 10' tfl iMcm? mamcuili 



BUQBOOK V and VI 



OP AMPMAMUAL bf Hwrirt M Berlin W3HB %T56 Qu9l01 Z Vf i^nwi 

owi n •*»«■ MMA """""""O 1 " 1 



Sis.oo per eel 
iw n. HMf. unptiKi A. Tll¥t 
ifeOiOiktt M0OA imcraco.'npuli' pioinmniir 
nlrrflo'ig An megrim ippisich 10 u"! mil 
DnMOOoiRling inij &0KM roicrfutng.piogrii 
!* Oigrlil conupit ol Bugoook V into i HHtment oi 
piogfimming md inlariicnig Detail A liDo 



HOT 

MMO imcpfUnr ortugar A piot> im lo' t 



iring UtSuoging ina storing 



55-QO CMOS M - DESIGNERS PRIMER 

AND HANDBOOK Ken eipmded venion 

Slilt H tuie tlruclutt ol CMOS Dtmtn through mti 



IB. 50 



COMPLETE MANUAL FOR DIGITAL CLOCKS by John Welti and John Brooks 

familijn;e& lecnniciai or iiotjfivisl wrin bjsic theories beoma digital clocks Includes liouble siiooiing gmOes basic 

ciidMClgnsiics ol ciocxs. sniaenrig itchnmues. dock comuonem jya wheels jnj consitucnon lips^ 



XC209 
HC209 
KC209 
XC209 



XC22 
KC22 
XC22 



125" Ola 
Rrt 
Green 
OiariBf 
Yellow 

.200" die 
Red 
Green 
Yellow 
Ouiige 



XC526 

XC526 
XC526 
XC526 
XC526 





.EDJ 


1 
200" dli 


XC5S6 


fled 


XC556 


Red 


x:556 


['iieen 


XC556 


Yellow 


XC556. 


Oiange 



.085' eiia 
MV50 - Red 6 SI 

ITT die. 
MVlO Red - 47S1 



DISPLAY LEDS 



TYPE 

MAN 1 
MAN 2 
MAN 3 
MAN 4 
MAN 52 
MAN 71 
MAN 72 
MAN 74 
MAN Bl 
MAN 82 
MAN 84 
MAN 3620 
MAN 3630 
MAN 3640 
MAN 4610 
MAN 4640 
MAN 4710 
MAN 4730 
MAN 4740 
MAN 4810 
MAN 6610 
MAN 6630 
MAN 6640 
MAN 6650 
MAN 6660 



POLARITY 

Common Anode-red 
5 1 7 Oat Mitnr-red 
Common Calttodeieo 
Common Cat node -red 
Common Anode -flieen 
Common Anode -red 
Commo-i Anode ted 
Common Catnode-ied 
Common Anode yellow 
Commoi Anode -yellow 
Commw Cainode- yellow 
Common Anode orange 
Common Anode-orange - 
Common CalWde-oiange 
Common Anode orange 
Common Cathode- 01 an ge 
Common Anode-ted -1 
Common Anode ted 
Common Calhode-ieO 
Common Anode yellow 
Common Anooe -orange- D 
Common Anode -orange 
Common Citnode -orange' 
Common Cat bode -orange 
Common AnoOe-prinoe 



OD 560 99 



TYPE 

MAM 6680 

MAN 6710 

MAN 6730 

MAN 6740 

MAN 6750 

MAN 6760 

MAN 6780 

□1701 

DL702 

DL704 

DL707 

DL74I 

DL746 

OL747 

DL749 

OL7SO 

OL33B 

FNH7Q 

FMD359 

FND503 

FN0S07 

5082-7300 

5082-730? 

5087-7304 

508? 7340 



POLARITY 

Common Catriode-orantje 
Common Anode-red-O.O 
Common Anode-FBd ■ I 
Common Calhode-red-D D 
Common CatHode-red -1 
Common Anode-ted 
Common Cathode ied 
Common Anode-ted - 1 
Common Caihodeied 
Common Cathode -red 
Common Anode -red 
Common Anode red 
Common Anode-red ■ 1 
Common Anode- ted 
Common Cathode-red - 1 
Common Caihode-ied 
Common Calhode-ted 
Common Cathode 
CO'iinon Anode 
Common Caihode (FNOSOO) 
Common Anode |FND5I0) 
4 x 7 Sgl Digil-RHDP 
4 1 7 Sol Oigil-LHDP 
Ove rr an ge character ( - II 
4> 7Snj Digit -Hcudecimal 



600 19 95 

600 1995 
600 15 00 



RCA LINEAR 

CA3013 2 15 CA3082 2.00 

CA2023 2.56 CA3083 1 60 

CA3035 2.48 CA3086 .85 

CA3039 135 CA3089 3 75 

CA3046 1.30 CA3130 139 

CA3059 325 CA3140 1.25 

CA3060 3.25 CA3160 1.25 

CA3080 85 CA3401 .49 

CA3081 2.00 CA3600 3.50 



CALCULATOR CHIPS 
AND DRIVER 

FCM3817 S5 00 



MM5735 


2 95 


MM5736 


1 95 


UU5738 


2 95 


DM886J 


200 


OM8865 


1 00 


DMB887 


75 


DMB889 


75 


5030 


7 95 



CLOCK CHIPS 



MM5309 

MM5J1 1 
MM531? 
MM5311 
MU5316 
MMS3IS 
\iy5369 
MM504 1 
7001 



8 pin LP 

14 pin LP 
16 pin LP 

15 pin LP 
20 pin LP 

14 pin ST 

16 pin ST 
IB pin ST 
24 pin ST 

B pin SG 
14 jjiii SG 
16 pin SG 

IBpinSG 



IC SOLDERTAIL — LOW PROFILE (TIN) SOCKETS 

25-49 50-100 1-24 

■M oa^j^p^^ 22 pin LP S M 

.19 .18 PRLnff 

^91^9 2BpitlLP -45 

.28 .27 36 pin LP 60 

32 -30 SOLDERTAIL STANDARD (TIN) <0 P |r,LP 63 

28 pin ST I .99 
36 pin ST 1.39 
40 pin ST 159 

SOLDERTAIL STANDARD (GOLD) 

24 pin SG I 70 



9374 ■ 7 -segment led driuai 

rnmninn jflpjfi L£pJ S .99 



25-49 50-100 



.52 

8 pin WW S40 

10 pin WW .45 

14 pin WW 39 

16 pin WW 



28pinSG 
36 pin SG 
40 pin SG 



.75 



WIRE WRAP SOCKETS 
(GOLD) LEVEL #3 



n WW 



75 



22 pin WW | .95 
24 pin WW 1 05 

28 phi WW 1.40 
36 pin WW i.S9 
40 pin WW 1.75 



50 PCS. RESISTOR ASSORTMENTS $1 .75 PER ASST. 



ASST. 2 
ASST. 3 



10 OHM I? OHM 15 OHM IB OHM ?•' OHM 

?7 OHM j3 OHM 39 OHM 47 OHM 56 OHM 

680HM 820HM 100 OHM I20OHM ISO OHM 

180 OHM 220OHM .TO OHM 330 OHM 39(1 OHM 

4 70 OHM b60 0HM 680 OHM B70OHM IK 



82K 


1D0K 


120K 


220* 


770R 


330K 


560K 


6B0H 


820K 



t'4 WATT 5*. 50PCS 

1/4 WATT 5*. 50 PCS. 

m wAn 5*. so pes 

1/4 WAn SS 50 PCS 

1/4 WAn 5*. 50 PCS 

1/4 WAn 5*. 50 PCS. 

1/4 WAn 5% 5QPCS. 



ASST. 8R lncludesResistorAssortments1-7(350PCS.) $9.95 ea. 



S5.00 Mirtimum Order - U.S. Funds Only 
California Residents - Add 6% Sales Tax 



Spec Sheets - 254 

1978A Catalog Avaiiahle-Send 354stamp 




J a 
QISliTinES 



PHONE 

ORDERS 

WELCOME 

(415) 592 8097 



MAIL ORDER ELECTRONICS - WORLDWIDE 

1021 HOWARD AVENUE. SAN CARLOS. CA 91070 

Advertised Prices Good Thru August 



WIRE-WRAP KIT — WK-2-W 
WRAP . STRIP . UNWRAP 

• Tool lor 30 AWG Wire 

• Roll ol 50 Ft. While or Blue 30 AWG Wire 

• 50 pes each 1". 2 . 3' ' & 4" lengths 
pre-stfipped wire. 

$12.95 




WIRE WRAP TOOL WSU-30 
WRAP . STRIP . UNWRAP $6.95 



WIRE WRAP WIRE — 30 AWG 

25ft. min. $1.25 50ft S1.95 100 It $2.95 1000ft $15.00 
SPECIFY COLOR — White - Yellow - Red • Green ■ Bloe - Black 



WIRE DISPENSER — WD-30 

50 ft. roll 30 AWG KYNAR wire wrap wire $3,95 ea. 

Cuts wire to desired length 

Strips 1" ol insulation Specify — Blue-Yellow-White-Red 



REPLACEMENT DISPENSER SPOOLS FOR WD 30 

Specify blue, yellow, white or red ■ $1. SB/spool 



XR2206KA $14.95 

Function Generator Kit 
(includes chip. PC 
Board and instructions) 



EXAR 



XR2206KB $19.95 

Function Generator Kit 
(includes all components, 
P.C Board and instructions) 



XR-L555 $1.50 

Micro-Power version ol the 
popular 555 Timer ant) directly 
interchangeable. Dissipates 
1/I5ln the power and operates 
down lo 2.7 volts. Pertecl lor 
aatlery operation and CMOS cir- 
cuits 



XR2242CP $1.50 

Precision timing circuit tor 
generating timing pulses in mi- 
nutes, hours and days or up to 
1 year by using two. Reduces 
cost ol time delay circuits Basic 
555 Timer with buill-in 8-0*1 
Counter. 



XH2Q5 
XH2I0 
XR2I5 

XR320 

XR555 

XP.556 

XR567CP 

XR567CT 

xrmtop 

(H146SCN 

•suae 



S3 40 
4 40 



XR1489 

xnuoo 

XR2206 
XR2207 
XR2208 
XR22C9 
XR2711 
XR2212 
XR2240 
XR276J 



VR2556 
XR2567 
XR3403 

xtune 



XH4212 
XRI558 
XR4739 
XR4741 



S 3 20 
299 



TYPE 

IN 746 
IN751A 
IN752 
1N753 
1N754 
1N9S9 
1N965B 
1N5232 
1N5234 
IN5235 
IN5236 
1N456 
1N45B 
1N4B5A 
IN4001 
IN4002 
1N4003 
IN4004 



ZENERS - 

VOLTS W 

3 3 400m 

5 1 400m 

5 6 400m 

6 2 400m 
6B 400m 
82 400m 
15 400m 
56 500m 

6 2 500m 
68 500m 

7 5 500m 



50 PIV 1 AMP 

100 PIV t AMP 

200 PIV I AMP 

400 PiV I AMP 



VOLTS 

PIV 1 AMP 
10 PIV 1 AMP 

1000 PIV 1 AMP 
200m 



10m 
10m 



DIODES - RECTIFIERS 

PRICE TYPE 

4 100 IN4005 

< 1 DO IN4006 

4 I 00 1N4007 

t 1 00 IN3600 

4 1 00 1M4I48 

i 1 00 1N41S4 

4 1 00 1N4305 

28 1N4734 

2B 1N4735 

28 1N4736 

2B 1N4738 

6 100 1N4742 

6 1 00 1N4744 

5 100 1NHB3 
1?tOO 1NI184 
12 100 1N1185 



PRICE 
10'! 00 
to 1.00 
10't 00 

6 I CO 
15-1.00 
12 1 00 
20 1 00 
2B 
28 



12 1 00 
00 



12 



12 tw 

15 1* 

50 PIV 35 AMP 

100 PIV 35 AMP 

150 PiV 35 AMP 

200 PIV 35 AMP 

400 PIV 35 AMP 



SCR AND FW BRIDGE RECTIFIERS 



C36D 
C3BM 
2M2328 
MOA 980-1 
MOA 980 3 



ISA tar 400V 

35A @ 600V 
1 6A @ 300'/ 
12A (5j 50V 
12A (a- 2O0V 



FW BRIDGE REC 
FW BRIDGE REC 



C106H1 

MPSA05 

MPSA06 

TIS97 

TIS9B 

TIS133 

IIS1 35 

J0409 

40410 

40673 

2N9I8 

2N2219A 

2N2221A 

2N2222A 

2N2369 

2N2369A 

MPS2369 

2N2484 

2N2907 
2N2925 
MJE2955 
ZN3053 



30 

5 I 00 

6 1 00 
6 100 
5 t 00 
5 100 

1 75 



TRANSISTORS 



^'J3CS5 

MJE3055 

2N3392 

2N3398 

PN3567 

PN3!5B 

PN3569 

MPS363BA 

MPS3702 

2N37Q4 

MPS3704 

2N3705 

MPS3705 

2N3706 

MPS3706 

2N3707 

2N371I 

2N3724A 

?fJ3725A 

2N3/72 

2N3823 

2N39D3 



5 1 00 
5 1 00 
5 1 00 
5 1 00 
5 I 00 
5 I 00 
5 1 00 



2N3SQ4 

;'M3905 
2N3906 
2IM4013 
2N4123 
PN4249 
P"J425tJ 
2N440O 
7N4401 
2N4402 
?N-IJ03 
2N4409 
2-V5086 
2N5087 
2N508B 
t 'N5089 
2N5129 
PN5I3-1 
PN513B 
2N5139 
2N5210 
2NS449 
2NS951 



CAPACITOR- 



10 pi 
22 pi 

47 pi 
100 pi 

220 pi 
470 pt 

001 ml 
0022 

0047ml 
01 ml 

1 35V 
15 '35V 
2235V 
33 '35V 
47/35V 
68 35V 
1 Qi35V 



1-9 10 99 100 



CORNER 



t-9 10-99 TOO - 



05 04 03 OOt^F 05 04 

05 04 .03 00-17/xF 05 04 

05 04 03 0I*F 05 04 

05 04 03 022^F 06 05 

05 04 03 047,.F 06 OS 

05 04 035 VF 12 09 

100 VOLT MYLAR FILM CAPACITORS 

12 10 07 022ml 13 11 

1? 10 07 047mt 21 17 

12 10 07 1ml 27 23 

12 10 07 22mf 33 27 

+ 20% DIPPED TANTALUMS (SOLID) CAPACITORS 

28 23 17 1 5 35V 30 26 

28 23 17 2 2 25V .31 27 

28 23 17 3 3r'25V 31 27 

28 .23 17 4 725V 32 28 

28 23 17 6 8.25V 36 31 

28 .23 17 10/25V 40 35 

2B .23 17 15725V 63 50 
MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS 



Axial Lsid 

47 '50V 15 

1 0/50V 16 

3 350V 14 

4 7,25V 15 
10/25V 15 
10,50V 16 
22/25V 17 
22fS0V 24 
47 /25V 19 
47/50V 25 

100/25V 24 

100,50V 35 

220V2SV 32 

Z2Q/5QV 45 

470725V .33 

10O0/16V 55 

2200' 16V 70 



13 



10 



47,25V 15 
47'50V 16 



Radial Lead 
13 



'16V 
I.07JSY 

I 0/50V 
4 7-16V 
4 7 '25V 
4 7/50V 
10/16V 
10/25V 
10'SOV 
47/50V 
100/16V 
100/25V 
100/50V 
22D/16V 
470/25V 



28 j 

1/ 



Circle 200 on inquiry card. 



BYTE Augusi 1978 195 



2400 BAUD ! 

or 

300 BAUD KCS CASSETTE INTERFACE 

Read and Write Interface Board 




• Works with MIK BUG or SWT BUG 

• Loads 8K Basic in < 1 min. 

• Plugs into the 6800 I/O Bus 

Assembled, Tested, & Documented 

Super Low Price: $59.95 ppd. 

Delivery slock to 4 weeks. To order ■ call or write today. 
We welcome Mastercharge, Visa, Checks, or C.O.D.'s 

Personal Computing Co. 

3321 Towerwood Or. Dallas, Tx. 75234 (214) 620-2776 




Send for FREE catalog., 
IXIIIIi: Dept.B 
WardWhidden House/The Hill 
Portsmouth, NH 03801 USA 



RADIO SHACK AND 
COMMODORE USERS 



Low Cost Software on Compatible 
Cassette Tapes for your TRS-80 
and PET Computers. 

—Games 

—Investment/Small Business 

—Educational/Scientific 

—Kitchen Programs 

INTRODUCTORY GRAPHIC GAME 
SPECIAL-Star Trek (8K), Football 
(8K), Lunar Lander, Wumpus, Bio- 
rhythms and Acey Ducey on 2 Cas- 
sette Tapes. A $25 value for $20.00 . 

SEND FOR FREE CATALOG 

Software royalty plans also available. 



d^PPARAT, INCORPORATED 
P.O. Box 10324 
Denver, CO 80210 



Circle 268 on inquiry card. 



Circle 133 on inquiry card. 



Circle 1 1 on inquiry card. 



v ; 



- 0?W4 MEGABYTE 
» C TAPE RECORDERI 

QUAD 5 CHANNEL l/4"TAPE 
TRANSPORT, ONE FURNISHED 

a °s- LOGIC FOR AUTO SELECT, REWIND, E 0T, 
^B 3 ' LOW LEVEL, 8 LAST CARTRIDGE-POWER 
V REQ'D I2V5AMPS DC -STD RACK PANEL I2I/8" 

HIGH I9"WIDE 20"DEEP, WT85LBS, FREIGHT COL. 
USED-GOOD COND-LIMITED CITY. DATA BOOK $\0M 

.025 SQUARE PIN PUSH-ON TERMINALS, 

FOR JUMPERS-PATCH-POWER-PLUG REPAIR, ETC., 
HARD TO FIND! IO/S0.50 I00/J4.50 

PC LEAD CAPACITORS 20/$l.00 

70PF NI500 I00VOLT 5% DISC N 

I20PF I00V0LT 5% DISC 6 PAX 

OIMFD200VOLT TUBULAR CERAMIC L 
005MFD 500V0LT DISC f j,, _- 

005MFD I00V0LT DISC $0.00 

.0068 MFD I00V0LT SO.. DIPPED POLY^* 
OIMFD 60V0LT 5% POLY TUBULAR, LONG LEADS, 
IO/$I.OO IOO/$7.50 

£ BI-PIN BASE T-l 3/4 I2V40MA 



INCANDESENT I0/$I.00 !00/$a00 



a 

CORE MATRIX STRIPPED FROM COMPUT 
ERS-8 PLANES-NO DRIVERS-NO DATA- 

AS IS -NO RETURN. 256+BYTES $19.95, IK BYTES 
$2796, 4K+ BYTES $39.95. 2 ONLY 1620 ASS'Y 
GOOD COND EACH $125.00 

CARD GUIDE 8 FRAME-I5PR-5 I/2H 5I/4WI2I/2L; OR 
15 SOCKETS ELCO NO. 700B-035-I63-002 ON RAILS, 
YOU STRIP-CHOICE $9.95 EACH. OTHER SURPLUS- 
SEND $1.00 FOR LIST OR CALL 617-625-2961, MC. 
BAC.VIZA ACCEPTED. $10.00 MINIMUM ORDER 

JSE ELECTRONICS SALES 
PO BOX 4504, FT. WORTH, TEX, 76106 



Circle 193 on inquiry card. 




•THE MOST POWERFUL SOFTWARE IN MICRO- 
COMPUTER 

•ON MOST POPULAR 5" FLOPPY DISKETTE 
DRIVE 

TDL FORTRAN ~ SIMILAR TO WATFIV 
TDL 12 K BASIC - SUPER BASIC 
TDL Z-TEL - POWERFUL TEXT EDITOR 
TDL TOP - TEXT OUTPUT PROCESSOR 
TDL ZASM - MACRO ASSEMBLER FOR Z-80 

•ALL WITH DISK BASED INPUT/OUTPUT. 
DYNAMIC FILE ALLOCATION. WORKS ON 
YOUR NORTH STAR DRIVE OR HORIZON 
WITH ABSOLUTELY NO HARDWARE MODI- 
FICATION. 




HOME COMPUTER CENTRE 

6101 Yonge Street 
Willowdale, Ontario 
CANADA M2M 3W2 
14161 222 1165 



SURPLUS ELECTRONICS 



ASCII 




ASCII 



IBM SELECTRIC 

BASED I/O TERMINAL 

WITH ASCII CONVERSION 

INSTALLED $695.00 

• Tape Drives • Cable 

• Cassette Drives • Wire 

• Power Supplies 12V16A, 12V25A, 
5V35A Others, ■ Displays 

■ Cabinets • XFMRS • Heat 
Sinks • Printers • Components 
Many other items 
Write for free catalog 
WORLDWIDE ELECT. INC. 
10 FLAGSTONE DRIVE 
HUDSON, N.H. 030S1 
Phone orders accepted using VISA 
or MC. Toll Free 1-800-268-1036 
In N.H. 603-885-3705 



Circle 395 on inquiry card. 



Surplus Conversational Data 

Communicative Terminal 

GTE NOVAR 5-41 




FEATURES: 

■ Correspondence Code 

* 13.45 Characters per second printout 

* RS232 Interface 

" Documentation included 

* 30 day warranty 

* High quality printing 

■ Reliable heavy duty selectric mechanism 
" Can be used as a typewriter 

with minor modifications 

* Inspected by factory trained technician 

* lusedl 8595.00 

WRITE: 

PHARMASSIST 
1810 W. Euless Blvd. 
Euless, Texas 76039 
call: (817) 469-2480 



FORT LAUDERDALE AREA 

COMPUTER AGE 

MICROCOMPUTERS & PERIPHERALS 
for HOME, SCHOOL & BUSINESSES 

We specialize in computer systems and 

provide a full range of computer 

services. Applications software 

for business including word 

processing, payroll and 

accounts receivable. 

More to come. 

DEALERS FOR 
Apple Computers Extensys 
Micromation Soroc 

. Hazeltine Centronics 

DEC North Star 

Problem Solvers and Others 

Cromemco 

999 South State Road 7 (441 ) 

Plantation, Florida 3331 7 

305-791-8080 



Circle 62 on inquiry card. 



LIST 


OURS 


$ 735 


$ 575 


$ 638 


$ 600 



10-20% DISCOUNT 
ON TOP COMPUTER LINES 



STARTER KIT SPECIALS 

Polymorphic 88 System 2 Kit 

IMSAI I 8080/22 Slot+4K RAM Kits 

SYSTEM SPECIALS 

PolySS System 2 Kit+Poly assembled 16KRAM 

and Poly assembled Keyboard $.1455 

IMSAI 1-8080/22 Slot*4K RAM-H6K RAM* 

VIO-C+MIO (All IMSAI kits) $1807 

Polymorphic 8813 complete 1 Disk System $3250 

(Above assembled) Additional Drive $ 590 

Apple II 16K (assembled) $1195 

SYSTEM UPGRADES AND EXPANSIONS 
Polymorphic 8813 Disk Upgrade $1450 

North Star Disk Upgrade - KIT $777 

(M0S-A+PS*CA8) Assembled $ 887 

Sanyo 9" Monitor $150. 15" $230, SOROC IQ $ 120 - 
GENERAL DISCOUNT POLICY 
IMSAI 10-15%, Polymorphic 15%. Apple II 10-20%. 
Cromemco 10%, Extensys expendible Memories 20% 

Mail Orders Welcome - Open by Appointment Only , 

AAA A COMPUTER HOWS - Established 1976 

1477 Harrington Suite 17. Los Angeles. CA 90025 

Call 213477-8478 
Sponsor ol Poly 88 Users' Group - Membership $5 



$1420 
$2650 
$ 505 
$1010 

$1200 
$ 660 
$ 780 
$ 845 



Circle 171 on inquiry card. 



Circle 31 2 on inquiry card. 



Circle 308 on inquiry card. 



RONDURE COMPANY 



2522 BUTLER ST. 

DALLAS, TEXAS 75235 

214-630-4621 



the computer roonn 




ASCII Selectric with ASCII parallel electronics. 
Immediate Delivery— Shipped from inventory. 



ASCII SELECTRIC 

SPECIAL SALE Prin ter Mechanism: Heavy 
duty input/output, Series 
745. 

Weight: 120 lbs. Dimen- 
sions: 29"Hx3S"Wx33"D. 
Print Speed: (14.8 charac- 
ters per second) 
Platen: 15" wide, pin feed 
or form feed device option- 
al (132 print positions). 
Parallel output only— 15 
characters per second ac- 
cepts 7 bit ASCII parallel 
w/strobe & prints on Selec- 
tric. The unit still works as 
a typewriter in off-line 
mode. 



$875.00 



TESTED WITH 

NEW 

ASCII 
ELECTRONICS 



DATEL SELECTRIC (IBM Selectric Mechanism) 




Specifications: 

• Size: 21"Wx21"Dx8"H. 

• Power Input 115 Volt 
Hz 

• inferface: RS232 

• Weight: 54 lbs. (Shipping 
weight 65 lbs.) 

• 15" Carriage 

• 15 CPS 

• Correspondence code 

• Half Duplex 

• 132 Print Positions, 10 
Pitch 



Used 



$395 



NOVATION DC3102A 



Used 

Working 




$150.00 



RS232 Connection 
300 Baud 



Tl 990/4 

Single Board 16 Bit Micro 

Computer 

NEW $250.00 



USED MODEMS & COUPLERS 
NOVATION TC102 (Acoustic) $45.00 

AJ 233 (Acoustic) $25.00 

CF 318 (Hard Wire) $25.00 




SHUGART 
MINI-FLOPPY DRIVE 



NEW PRICE 
$325.00 ea. 

Model SA-400 




FLAT PACK ACOUSTICAL 

MODEM PICK-UP 
Useable with most modem 
chips/kits 
Used — $17.50 (w/prints) 



ORDERING INFORMATION: 

We ship the same day we receive a certified check or money order. 
Texas residents add 5% sales tax. Please call if you have a question. 
Write for our CATALOG of many parts, terminals, printers, etc. 
All items subject to availability. Your money returned if we are out 
of stock. 



SHIPPING INFORMATION: 

Modems: $2.00 each; 2 for $4.00 UPS. 

Large Items & Parts: Specify Freight or Air Freight Collect 

Foreign Orders: Add appropriate freight or postage. 

We now take Master Charge and Visa orders, Specify full number, 

bank number and expiration date. 



1 



F. Reichert Sales 

1110 E. GARVEY AVE. 
W. COVINA, CA 91790 



• S20 MINIMUM ORDER 

• FREE UPS DELIVERY ON 
U.S. ORDERS ONLY OR BY 
SURFACE MAIL IF SPECIFIED 

• MONEY BACK GUARANTEE 

(MOS t LED OEVICES EXCLUDED) 

• UNOER 8 HOUR PROCESSING ON 
MONEY ORDERS S CASHIERS 
CHECKS. 



• SORRY! NO COD'S. 
PO'S, OR CREDIT CARDS 

• CALIF. RES. ADD SI 
SALES TAX 

• CANADA PUERTO RICO 

S U.S. POSSESSIONS ADD 
U.S. S3.50. ALL OTHERS 
ADD U.S. $7.00 

• U.S. FUNDS ONLY! 



THE S-100 BUS DIAGNOSTIC BOARD 

CENTURION IV 

A LEGION OF DIAGNOSTIC TOOLS ON ONE BOARD! 

• EXTENDER BOARD "PULSE DETECTOR 

• LOGIC PROBE • CURRENT SHUNT 

• CONVERTIBLE INTO BACKPLANE. 

• ON BOARD CONNECTORS FOR SCOPE, DVM, VOM', GENERATORS, ETC. 

• ON BOARD 5 WAY CONNECTORS AND RF CONNECTORS. 

• OVER 160 WIRE-WRAP POINTS FOR TOTAL AND COMPLETE FLEXIBILITY 
IN WIRE WRAPPING ANY I/O CONNECTOR AND ALL LOGIC PROBE 
INPUTS INTO ANY AND ALL 100 BUS LINES, WHICH MEANS YOU 

CAN MONITOR AND MEASURE ANY PARAMETER ON ANY ONE OF THE 
100 BUS LINES, OR LOGIC LEVEL PROBE ANY FIFTY BUS LINES 
SIMULTANEOUSLY. THE ONLY TOOL OF ITS KIND. A MUST FOR ANY 
SERIOUS SERVICE EFFORT. 

Kit $119«o Assembled $149«o 



S-100 32K STATIC MEMORY BOARD 

WITH THIS BOARD YOU CAN BEGIN WITH IUST 8K OF MEMORY AND ADD ON 
LATER. IT CAN BE AS SIMPLE AS INSERTING MORE MEMORY CHIPS. 

FEATURES 

I FULLY STATIC — USABLE WITH ALL DMA DEVICES. 

2. BUFFERED WITH NOISE SUPPRESSED INPUTS. 

3. POPULATED IN IK INCREMENTS (EACH IK CAN BE ACCESSEO INDIVIDUALLY). 

4 INCLUDES A RELIABLE SINGLE SOURCE +5 VOLT REGULATOR. 

5 PROM COMPATIBLE: THE BOARD MONITOR CAN BE EXCHANGED (PIN BY PIN WITHOUT 
BOARD MODIFICATION) WITH A BIPOLAR PROM PROGRAMMED TO YOUR SPECIFICATIONS. 

6. CREATES NO WAIT STATES. 

7. PRICES QUOTED ARE FOR 300nS 200mW MEMORIES. 

— ASSEMBLED UNITS ARE FULLY TESTED AND BURNED IN. 

— KITS AND BARE BOARD COME WITH FULL ASSEMBLY AND CHECKOUT INSTRUCTIONS. 

8K 16K 24K 32K BARE 

KIT $270°° $440°° $580°° $695°° BOARD 

ASSEMBLED $296» $465°° $612°° $740°° $38» 



MAXI SWITCH KEYBOARDS 

UNENCODEDMOUNTED ON G 10 GLASS 

EPOXY BOARDSA BLACK METAL FRAME 
KEEPS KEY SWITCHES SECURELY IN PUCE. 



NO. 1 

— !3 KEY MAIN KEYBOARD 
—10 AUXILLARY & CURSOR 

CONTROL KEYS 
—II KEY NUMERIC PAD 
—BANK Of 5 AUXILLARY 

POWER S CONTROL. 

ROCKER ARM SWITCHES. 

ONE OF THEM LIGHTS UP. 

$39" 

WW. SOCKET CONNECTOR 
FOR NO. 1 KEYBOARD 

$2» 



NO. 2 

—S3 KEY KEYBOARD 
—1 AUXILLARY POWER/ 
CONTROL DPOT ROCKER 
ARM SWITCH 

$29" 

BEIGE METAL FRAME 
FOR NO. 2 

$995 

SOCKET CONNECTOR 
FOR NO. 2 KEYBOARD 



$29 



WANT PEACE OF MIND? IN 
CRITICAL APPLICATIONS 
USE BIPOLARSII 



82S10 
82S11 



BIPOLAR RAMS 

1024x1 

1024x1 



$4.95 
$4.95 



BIPOLAR 
PROGRAMMABLE LOGIC ARRAYS 

825100 $11.95 

825101 $11.95 



8223 

82S23 

82S126 

93427 

82S131 

63061 

3604 



BIPOLAR PROMS 

256 (32 x 8) 
256 (32 1 8) 
1024 (256 x 4) 
256 x 4 TRISTATE 
2048 (512 x 4) 
2K TRISTATE 
4096 (512 x 8) 



$2.65 
$3.40 
$4.95 
$4.95 
$6.95 
$5.45 
$11.95 



ULTRA LOW POWER 

256 > 4 • BIT STATIC CMOS RAM 

S101L-3 650nS 30mW 



DATA RETENTION 

CURRENT 
0.7uA AT 2 VOLTS 



$9 



95 



ASCII KEYBOARDS 

FOLLY ASSEMBLED 
FULLY FUNCTIONAL 

—MAIN KEYBOARD SECTION OF 

58 KEYS 
—A HEX PAD OF 15 KEYS 
—16 MORE PERIPHERAL KEYS 
—ASCII ENCODED 



NO. 1 - WITH ON BOARD UV PROM 



$9995 



NO. 2 - IDENTICAL TO THE ONE ABOVE, 
BUT WITHOUT ON BOARD UV PROM 



$79 95 



S-100 EXTENDER BOARD 

WITH CONNECTOR 



A MUST lor trouble- 
shooting your Computer boards 



$1795 



S-100 EXPANDABLE MOTHER BOARD 

• 8 SLOT EXPANDABLE BACKPLANE 

• QUIET— GROUND PLANE DECOUPLES All SIGNAL LINES 

• RELIABLE GOLD CONTACT CONNECTORS 



COMPLETE 



$66 



00 ASSEMBLED 



$89°° 



S-100 

100 PIN 

EDGE CARD 
CONNECTOR 

GOLD CONTACTS 

$4" 



WIRE WRAP 
POST 

2 LEVEL 

10/78C 

100/16.50 

4 LEVEL 

10/98c 

100/$7.40 



HI-REL GOLD 

WIRE 
WRAP 

SOCKET 
POST 

10/S1.20 

I00/S9.90 

1000/S79»» 

IIST PfllCE 29c 



SUMMER SPECIALS! LOW PROFILE SOLDERTML 
I.C. SOCKETS. OTHER SIZES IN PREVIOUS AD. 
GOLD INLAID TIN 

24 PIN 5/ J 1.09 S/J0.89 

28 PIN 5/S1.19 5/S0.99 

40 PIN 4/S1.19 4/S0.99 



PRICES AND AVAILABILITY SUBJECT TO CHANGE 
WITHOUT NOTICE. 



Circle 207 on inquiry card. 



BYTE August 1978 197 



What's New? 



PERIPHERALS 



Give Sight to Your 6800 Computer System 




The Digisector (DS-68) functions in 
conjunction with an inexpensive tele- 
vision camera to present the computer 
with a high resolution digitized picture 
of the scene in view of the camera lens. 
The Digisector requires one IO slot in 
the SwTPC 6800 computer (or equiva- 
lent) and accepts either interlaced 
(NTSC) or noninterlaced (industrial) 
sync pulses from the video source. 
It features 256 by 256 picture element 
resolution, with up to 64 levels of grey 
scale. Data conversion times vary with 
resolution requirements but can be 
as low as 3 us per picture element. 

Applications include precision 
security systems, moving target indica- 
tors, computer portraiture, and fast to 
slow scan conversion for ham radio 
operators. With clever software, the 
Digisector can read paper tape, punched 
cards, strip charts, barcodes and musical 
scores. 

The Digisector comes fully assem- 
bled, tested and burned in. The DS-68 is 
priced at $169.95. Software for com- 
puter portraiture and slow scan tele- 
vision is included. For further informa- 
tion, contact Micro Works, POB 1110, 
Del Mar CA 92014." 

Circle 61 5 on inquiry card. 



Dual Printer from Addmaster 




Acoustic Coupler Aids Clarity 



This dual printer prints three lines 
per second and has 1 1 character loca- 
tions per column with a dual capacity 
of 6 to 10 columns, up to 22 columns 
as a single. A large library of characters 
is available. 

Among the features are a small 
print mechanism, self-inking ribbon, 
variable paper space control. A tape 
rewind (one or both sides) is available. 

The Addmaster dual printer operates 
with a 117 VAC 1.3 A drive motor. 
Other voltages are available. Quantity 
prices start at $66. For further infor- 
mation contact Addmaster Corp, 
416 Junipero Serra Dr, San Gabriel 
CA 91776.- 

Circle 616 on inquiry card. 




A new acoustic coupler (modem), 
designed to enhance clarity and accuracy 
of telephone line data transmission to 
and from computer terminals, has been 
introduced by Information Products 



Division of Omron Electronics Inc, 
432 Toyama Dr, Sunnyvale CA 94086. 
The series 8300 Data Modems are 
designed for acoustic and hardware 
operation via the switched telephone 
network or private line installation. 

Acoustically coupled with a Western 
Electric 500 handset or equivalent, the 
8300 modems offer a convenient 
method of data transmission. 

The 20 mA current loop interface 
(plug compatible with a DECwriter 
LA36) and a separate 25 pin RS-232C 
EIA connector may be operated simul- 
taneously. The series is available as 
originate-only or originate-and-answer 
switch selectable for 300 bps operation. 
The modem is priced at $275 for single 
units." 

Circle 61 7 on inquiry card. 



IO Processing Unit 

A general purpose IO processing 
board, the APU100, which provides a 
high performance to the standard 
S-100 bus has been announced by 
Extensys Corporation. Designated the 
Extensys Asynchronous Processing Unit, 
the APU100 includes an on board 8080 
processor. The unit operates asynchro- 
nously with the central processing unit 
of the computer system and transfers 
information by use of direct memory 
access. 

The APU100 uses the system clock 
on the bus to provide internal timing 
so that all system processors are synchro- 
nized. The unit has 8192 bytes of 
programmable memory storage operating 
at 300 ns access time and 1024 bytes of 
2708 type erasable read only memory 
storage in addition to its dedicated 8080 
processor. 

Using the APU100 frees up 8 K bytes 
of system memory by moving IO rou- 
tines to the APU100, allowing more 
memory for application programs. Sys- 
tem performance is improved with the 
opportunity to buffer up information 
using direct access memory. Slow speed 
IO devices can be serviced at their 
rated speeds while system operation 
continues at normal speed. 

When used with Extensys' MM-16 
Memory Manager, the APU100 per- 
forms in a high speed direct access 
memory mode, transferring greater 
chunks of data at full memory speeds. 

Contact Extensys Corp, 380 Bernar- 
do Av, Mountain View CA 94040, for 
additional information." 

Circle 618 on inquiry card. 



198 August 1978 ©BYTE Publications Inc 



Circle 296 on inquiry card. 



PACIFIC OFFICE SYSTEMS 
presents the 






'Spbii 



J) 



$$0^ 



standard IBM model 725 
Selectric Typewriter (or your own 15" carriage 
Select ric I or Selectric III is the heart of this off-lease batch-processing 
hard-copy I/O terminal. (Thousands were made for Sears and other major companies). Pr 
ing speed is 15 characters per second. Data transfer rate between terminal and CPU can be as fast a: 
2400 band) by means of the 350 character line buffer and built-in digital cassette tape drive which stores data from the keyboard 
as typed or as transmitted from a computer or another terminal {such as the built-in Bell 103 or 202 modern optional.) 




FEATURES: • Available in EBCDic or IBM correspondence code versions with 
ASCII translation and I/O driver program in 8080 assembly language • Micro- 
computer hardware interface is 10 wire EIA RS232 connector cable between 
terminal and standard serial I/O card such as Processor Tech 3P + 5 • Includes 
complete documentation: Operator and Service Manuals, schematics, interface 
instructions for microcomputer and software listing of I/O driver and ASCII 
translation program • Optional Built-in 103 or 202 Modem available • Typewriter 
can be serviced by any IBM technician (solenoids, switches and wires have been 
attached to the bottom of the typewriter without physical alteration of the 
factory mechanism). 

MODELS AND PRICES: 

MODEL 5541 (IBM 2741 -Type Selectric Terminal S 895 

MODEL 5550 (w/built-in cassette drive for 

offline data storage or use as memory typewriter S1495 

MODEL 5560 (ASCII code w/cassette drive) S1495 

•/.PRICE SPECIAL: 

Model 5541, 5550, 5560 Selectric Terminals available AS IS for '/. the prices listed 
above. Here's an opportunity for the do-it-yourself hobbyist to acquire high 
quality hardware at rock-bottom prices. Typical condition of units: typewrite! 
need cleaning and adjusting but not overhaul; electronics are complete but need 
trouble shooting. POS maintains a complete stock of tested parts at reasonable 
prices for repairs. Documentation included: same as the warranted terminals, 
except no microcomputer interface software. 



I/O TYPEWRITER ONLY SPECIAL: 

MODEL 725 IBM Selectric includes keyboard pickup switches, out-put solenoids, 
and magnet driver PCB to coordinate input/output signals. Requires +24V and +5V. 

MECHANISM ONLY, cleaned and adjusted $325 

CASE and POWER SUPPLY $75 

I/O SELECTRIC CONVERSION KIT: 

Convert your office Selectric to an I/O typewriter. Includes keyboard pickup 
switches, out-put solenoids, and magnet driver PCB. Attaches to typewriter, 
no drilling necessary. Requires +24V and +5V. Complete documentation and 
instructions included S150 



JUST ARRIVED: 

LAMBDA REGULATED POWER SUPPLY +5VDC ( 



Call or write for details, quantity discounts, 
and our CATALOG. See the July 1978 
BYTE for a list of other products and prices 
(including tape drives, power supplies, 
paper tape readers, modems, video 
monitors, pinfeed platens. ASC II 
encoded keyboards, etc.). 



30 amp $75 

NO RISK I 7 DAY 
APPROVAL ON ALL 
MAIL-ORDERS. FULL 
REFUND ON RETURNS. 



All orders shipped from stock. No back orders, 
no substitutions. All equipment is shipped 
insured FOB Palo Alto within 14 days after 
check clears or COD order is received. M/C & 
VISA accepted. 



PACIFIC OFFICE SYSTEMS. INC. 

2600 El Camino Real, Suite 502 

Palo Alto, Calif 94306 

(415) 321-3866 



90 day warranty against defects in material 
or workmanship on all used equipment. Full 
documentation includes PLUS interface instruc- 
tions where indicated. Availability subject to 
prior sale. Prices may change without notice. 



cybercom boards 



MB-1 MK-8 Computer RAM (not S-100). 4KX8, uses 
2102 type RAMs, PCBD only $22.00 

MB-3 1702A EROM Board, 4KX8, S-100 Switchable 

address and wait cycles, kit less PROMS $58.00 

MB-4 Basic 4KX8 ram, uses 2102 type rams S-100 
buss. PC board $24.95 

MB-6A Basic 8KX8 ram uses 2102 type rams, S-100 
buss. KIT 450 NSEC $125. PCBD $24.95 

MB-7 16KX8, Static RAM uses U P410 Protection, 

fully buffered. KIT $375.00 

MB-8A 2708 EROM Board, S-100, 8KX8 or 16KX8 
kit without PROMS $75.00 

MB-9 4KX8 RAM/PROM Board uses 2112 RAMS or 
82S129 PROM kit without RAMs or PROMs . .$72.00 
10-2 S-100 8 bit parallel I/O port, % of boards' is for 

kludging. Kit $46.00 PCBD ..$24.95 

10-4 Two serial I/O ports with full handshaking 
20/60 ma current loop: Two parallel I/O ports. 

Kit $130. PCBD $24.95 

VB-1B 64 x 16 video board, upper lower case Greek, 
composite and parallel video with software, S-100. 

Kit $125.00 PCBD $24.95 

Altair Compatible Mother Board, 11 x 11 Vi x Vb". 
Board only ....$40.00. With 15 connectors ....$90.00 

Extended Board full size. Board only $ 9.00 

With connector $13.00 

SP-1 Synthesizer Board S-100 

PCBD $39.95 KIT $135.95 



82S23 

82S123 

82S126 

82S129 

82S130 

82S131 

MMI6330 

4N26 

4N27 

4N28 

LM323 



$1.50 

1.50 

1.95 

1.95 

3.00 

3.00 

1.50 

.75 

,75 

.75 

2.95 



PRIME DEVICES 

8080A 

8212 

8214 

8216 

8224 

8228 

8251 

8255 

21L14 



11.50 
3.75 
6.50 
3.95 
4.00 
6.95 
9.95 
9.95 
8.50 



nHHnC/ ine. WAMECO INC. 

MEM-1 8KX8 fully buffered, S-100, uses 2102 type 

rams PCBD _ $24.95 

Mother Board 12 slot, terminated, S-100. board 

only $30.95 

CPU-1 8080A Processor board S-100 with 8 level 

vector interrupt PCBD $24.95 

RTC-1 Realtime clock board. Two independent in- 
terrupts. Software programmable. PCBD $23.95 

EPM-1 1702A 4K Eprom card PCBD $24.95 

EPM-2 2708/2716 16K/32K 

EPROM CARD PCBD $24.95 

SHORT MOTHER BOARD Short Version of QM-1A 

8 Slots PCBD $27.95 

2102AL-2 Prime 250 NSEC $1.70 

2102AL-4 Prime 450 NSEC $1.30 

2708 Prime (National) $$9.95 

1702A-6AMD Prime $3.50 

1702A Intel Not Prime (2US) $2.00 

2501B $1.50 1488N $1.50 

2502B 1.50 1489N 1.25 

2504 1.50 MC4044 2.25 

2507V 1.50 8038 3.90 

251 0A 1.50 5320 5.95 

2517V 1.50 5554 1.90 

251 8B 1.50 5555 2.50 

25196 1.50 5556 2.50 

2521 1.50 5055 1.25 

2522 1.50 5312 4.00 
2525 1.50 MH0025 1.50 
2527 1.50 MH0026 1.75 
2532V 1.50 MH0028 1.90 
2529 2.75 5262 .50 
2533V 1.95 2101 3.50 



M 




419 Portofino Drive 
San Carlos, California 94070 

Please send tor IC, Xistor 
and Computer parts list. 



INTRODUCTORY OFFER. Good for the month of this issue. 

WAMECO 

16K STATIC 2114 RDM BOARD 

PCBD $23.95 

PCBD & MIKOS PARTS ASSORTMENT 
#7. All parts, including sockets 

and prime 2114L $275.95 

Assembled, Test and 

Burn in by PROKO $335.95 



Kits based on Wamco & Cybercom Boards wi 


h Mikos 


parts assortment. 




8080 CPU KIT $ 89.95 Assembled. 


$135.95 


REAL TIME CLOCK KIT ... . S 65.95 Assembled 


5 99.95 


VIDEO KIT $ 89.95 Assembled 


$135.95 


8K 450 NSEC. (MEM-1) KIT. $125.00 Assembled 


$145.95 


8K 250 NSEC. (MEM-1) KIT. $155.00 Assembled 


S1 80.95 



LIMITED QUANTITY 

8K STATIC RDM. 450 NSEC. BUFFERED. ASSEMBLED. 
TESTED AND BURNED IN. PARTS MAY BE UNMARKED. 
ALLOW 3 WEEKS 5125.95 



VISA or MASTERCHARGE. Send account number, expira- 
tion date & sign your order. Approx. postage will be added. 
Check or money order with order will be sent post paid in 
U.S. II you are not a regular customer, please use charge. 
cashier's check or postal money order, otherwise there will 
be a two-week delay for checks to clear. Calif, residents 
add 6% tax. Money back 30 day guarantee. We cannot 
accept returned IC's that have been soldered to. Prices 
subject to change without notice. $10 minimum order. 
$1.00 service charge on orders less than $10. 



Circle 247 on inquiry card. 



BYTE August 1978 199 



What's New? 



PERIPHERALS 



The Terrapin Inc Turtle. . . 




Here are some more details about the 
new Terrapin Turtle, manufactured by 
Terrapin Inc, 33 Edinborough St, 6th 



Floor, Boston MA 02111. The infor- 
mation is condensed into the form of a 
photograph of the new peripheral which 



accompanies this first formal press 
release from the new company. Without 
bending the truth (too much), it could 
be claimed that this peripheral (exclud- 
ing the computer required to drive it 
through a cable) is the world's least 
expensive commercially sold mobile 
general purpose robot if we exclude 
certain dedicated office or hospital 
delivery robots (at tens of thousands of 
dollars) and prototype R2D2-like forms 
seen in a pen (see page 16 of July 1978 
BYTE) at the West Coast Computer 
Faire but never seen on the market to 
date in the advertising or literature 
which passes this desk. The Terrapin 
Turtle, a small electronic robot con- 
trollable by microprocessor, can "walk" 
(roll), touch (with its 3 1/2 inch radius 
hemispherical dome), and draw (lower- 
ing its pen attachment), as programmed. 
It has lights for eyes and a speaker to 
emit sounds. The Turtle requires a 
parallel interface: one compatible with 
an S-100 bus is available as an accessory. 
Each Turtle comes with 10 feet of cable 
and may be purchased either as a kit or 
fully assembled. Each kit comes with a 
tested, 20 page instruction manual. 

The Turtle may be used to map 
rooms, solve mazes, teach simple geo- 
metry or programming concepts, as well 
as many other tasks. The Turtle is 5 
inches high, crawls at 6 feet per second 
and is extremely versatile due to its 
touch sensors. Brochures are available. 
The kit costs $300; the assembled 
Turtle is $500; and the interface costs 
$40." 

Circle 529 on inquiry card. 



Single Board Microperipherals 
from Burr-Brown 



Intelligent Low Cost Terminal 




The MP810 and MP810-NS are two 
new microperipheral boards from Burr- 
Brown designed to accept up to 24 
digital inputs. The boards are elec- 
trically and mechanically compatible 
with the Intel SBC-80, Intellec MDS 
and National BLC-80 microcomputers 
and operate from their +5 VDC supplies. 
They are programmed as memory loca- 
tions and, with each input using one 
memory bit, any read command may 
be employed. When the board is read, 
logic represents an open contact; 
logic 1, a closed contact. Each read 



command inputs the status of eight 
channels. 

The MP810, with an on board power 
supply, operates with dry relay contacts 
and the MP810-NS, with voltage inputs, 
operates with wet relay contacts. Each 
group of eight inputs is isolated from 
other input groups and from com- 
puter bus to 600 VDC. Isolation 
between inputs of the MP810-NS is 
300 VDC. 

Input impedance is 15 k ohms and 
input delay is 25 jjs maximum open to 
closed; 100 lis maximum closed to open. 
Minimum voltage needed to detect logic 
1 is 17 V; logic 0, 4 V. For contact 
closure sense, maximum closed imped- 
ance is 6 k ohms; the minimum open 
impedance is 80 k ohms. Maximum 
voltage that can be applied across the 
MP810 input is 120 VAC RMS, or 
60 VDC; across the MP810-NS inputs, 
168 VAC RMS, or 84 VDC. In 1 to 9 
quantities the MP810 is priced at $355, 
the MP810-NS at $295. For further 
information contact Burr-Brown, Inter- 
national Airport Industrial Park, Tucson 
AZ 85734.- 

Circle 530 on inquiry card. 




The ZMS-50 is an intelligent terminal 
geared for a wide variety of data entry 
and text editing applications. It is a 
microcomputer based keyboard and 
video display unit controlled by 
Zentec provided programs execut- 
ing out of read only memory. The 
terminal consists of a general purpose 
keyboard, 25 line by 80 character video 
display, 4 K or optional 16 K bytes of 
system programmable memory, and an 
asynchronous or synchronous RS-232C 
interface supported by a telecommunica- 
tions firmware package. An optional 
simplex (output only) RS-232C interface 
to a local printer is also available. Priced 
under $2000 from Zentec Corp, 2400 
Walsh Av, Santa Clara CA 95050." 

Circle 531 on inquiry card. 



200 



August 1978 ©BYTE Publications Inc 



FREE PROBES FREE PROBES FREE PROBES 






ILM3A 3 dig 1% DC $125. 

ILM3.5A 3Vl dig .5% DC $147. 

ILM40A 4 dig .1% DC $190. 

|LM4A 4 dig .03% DC $2 

Rechargeable batteries and cha^ 

eluded 

Measures DC Volts, AC.VaJ^ ^TWand 

Current 

Automatic polarila^dlJflkPand i 

indication ^a# *t_r** 1. 1 Taj - L MS-215 Dual Trac e Version o( MS-' 

• Rechargd&J\)tteries ajl^wSM'*" 
■• Mea*B^» "olts^"%Vtfi,*>hms and 



ftatij p. 
IriBlcat 

I- No 

adjul 
|* Batte^oporated 
line operation. 
> Larae LED display for easy reading without 
interpolation 
Siza: l.0"H x 2.7"W x 4"D 
Pa/la & labor guasantaad 1 yMr 

Till stud option * 3.50 

Leather case f 16.00 



S100-WWG 50/100 Com. .125 cirs. 
3 LEVEL WIRE WRAP 025' sq. posls 
on 250 spaced rows. GOLD plated. 

1-4 5-9 10-24 

$4.00 S3 75 S3.50 



S100-STG 50/100 Com. .125 cirs 
DIP SOLDER TAIL on .250 spaced 
rows for VECTOR and IMASI 
motherboards GOLD plated. 

1-4 5-9 10-24 

S4.00 S3. 75 S3. 50 



RGS1G 50/100 Com. 125ctrs. DIP 
SOLDER TAIL on .140 spaced rows for 
ALTAIR motherboards. GOLD plated 
$5.00 



S100-WWN 50/100 Com. 125 ctrs 
3 LEVEL WIRE WRAP 025" sq posts 
on 250 spaced rows NASGLO tin- 
nickel plated. 

1-4 5-9 10-24 

S3. 50 S3. 25 S3. 00 



S100-STN 50/100 Com .125 ctrs 
DIP SOLDER TAIL on .250 spaced 
rows for VECTOR and IMASI 
motherboards. NASGLO tin-nickel 
plated. 

1-4 5-9 10-24 

$3.50 S3. 25 $3.00 



R681-3 50/100 Com. .125 ctrs 
PIERCED SOLDER EYELET tails 
GOLD 
S7.35 



Purchase any of the LM series 
Meiers and buy the LEA THER CASE 
for 1C 



24 pifl 
28 pin 

1.20 

ibined fof*be| 

All sockets are~Gt)0*3^e>aLclosed entry' 
stacable 2 level. SoiaeanaAcow Profile. 
i Plugs available CALlTBR QUOTATION 



Other Popular Edge Connectors 



R644-G 22/44 Com. .156 ctrs. 
PIERCED SOLDER EYELES tails. 
GOLD plated. 

1.4 6-9 10-24 

$3.00 $2.75 $2.50 



R644-3 22/44 Com. 
WRAP tails. GOLD 
$4.71 



156 ctrs WIRE 



ATTN: OEM'S and Dealers, many other connectors available call or quotation. 



Plugboards 







3682 9.6 "x 4.5" 

$10.97 

3682-2 6.5" x4. 5" 

$9.81 

hVDensily Dual-ln-Line 
Plugboard tor Wire Wrap 
with Power & Grd Bus 
Epoxy Glass 1/16" 44 
pin con spaced 156 



3677 9 6"x4.5' 

$10.90 

3677-2 6.5" x 4.5" 

$9.74 

Gen. Purpose D.I. P. 
Boards with Bus Pattern 
lor Solder or Wire Wrap. 
Epoxy Glass 1/16" 44 
pin con, spaced .156 



3662 6.5"x4.5" 

$7.65 

3662-2 9.6" 1 4.5" 

$11.45 

P pattern plugboards for 

IC'S Epoxy Glass 1/16" 

ipincon spaced 156 




8K 450 ns 

EPROM 

FACTORY PRIME 

$10.00 EA. 

25 + Call For 
Price 



■mm 
II 

II 

^^|j|iiiii!]lii!iiijililili[llllllll' 

3690-12 
CARD EXTENDER 
Card Extender has 100 
contacts-50 per side on 125 
centers-Attached connector-is 
compatible with S-100 Bus 

Svstems $25.00 

3690 6.5" 22/44 pin 158 
ctrs. Extenders $12.00 , 



14 & 16 PIN 

^GOLD 3 LEVEL 

\WIRE WRAP 

SOCKETS 

'14 - G3 100 for 

$30.00 

16-G3 100 for 

$30.00 

50 of each for $32.00 

are End & Side stackable. 

^Jjo^gd^njrj^^,^ 



■LJBf 



FM-7 
With 

Rechargeable 

Batteries A 

Charger 

Unit $195 I 



>C-5 

with 

lachargaabl« 

nlterles & I' cumes include • fly using me it* NLS SC 5 Prescaitr ITie range ol 

-h»rn«r Hit FM-7 Frequency Meier, which is 10 HMO 60 MHz. may becitanOeo 

'" Tl n „ to b12 MHi (Ihe upper VHF & UHF Irequency QanOs) • Tne FM-7 ul.- 

$89 lues an LEO readout, providing 7-dign resolution • The FM-7 can be 

accuracy of COOOt % • the SC-5 is aceurale 10 one 

pari per million • Each unit las 30 millivoils sensitivity, is nailery 

powered and las a cnairjer utiB included • Dimensions ot each are t 9' 

H i 2 7" W i 3.9" D • The units may Be obtained separately or as a 

' Frequency Duo ' ' • Parts & Labor guaranteed I year 

option S 3. SO 

Leather case 116 00 

SPECIAL 

14CS2100for l 14 00 
16CS2 100for»16 00 

14 pin CS2 10 for '2" 
16olnCS2 8 for '2" 

These tow cost DIP sockets will accept 
both standard width plugs and chips. 
For use with chias, the sockets otter a iow 
profile heiQrii ol only ,126" above Ihe board, 
These sockets are end stackable. 

w 



WRAP POST 

lor ,012 dia. holes 
(all boards on tins page) 
T-4*pka. 100 S Z.28 
T-44 pkg 

1003 . . SI* 00 
A-13 hand installing 



8 West Rosecrans, Hawthorne, Cfl 90250 



tool 



S 28 



Send lor our latest brochur 



SA MC 8AC check Money Order COD.US funds Only uA 
SiO 00 Orders less man %lb 00 include 10% shipping and hdnaii 
include your pnone no "Sorry.no over the counter sales 

phone orders welcome 




esidents add 6% sales lax Mini- 
;g. excess relunded Jusl in case 
' Prices subject to change 

without notice. 
\*L I o) y /0"487b OEM and Institutional inquiries invited 



24 PIN DIP PLUGS 
WITH COVERS 



■MllllUfa* 



3/ $1.00 
an / sm on 



FREE PROBES FREE PROBES FREE PROBES 



Circle 304 on inquiry card. 



BYTL Aurum l l J7S 201 



What's New? 



PERIPHERALS 



Serial Minifloppy Buffered Terminal 



Dot Matrix Printer Line Offered by 
Motorola 




Motorola Microsystems, POB 20812, 
Phoenix AZ 85036, has announced a 
new line of four dot matrix printers. The 
line printers offer a full range of fea- 
tures, including 80 and 132 column for- 
mats; 60, 120 and 180 characters per 
second (cps); bidirectional and logic 
seeking print heads. All four printers are 



equipped with an interface IO module 
and an interconnection cable assembly 
that adapt them to the various Motorola 
microcomputer development systems, 
including the EXORciser and the EXOR- 
term 100 and 200. These interface 
accessories permit the printers to be 
used with the company's line of Micro- 
modules (microcomputer board systems 
and subsystems). Model 779 is a printer 
capable of printing from 80 to 132 
columns of 5 by 7 dot matrix at rates 
of from 21 to 90 lines per minute at 
60 cps. 

The Model 781 is an 80 column 
character printer which features bidi- 
rectional logic seeking movement of the 
print head enabling throughput of up 
to 120 lines per minute. The Model 702 
is also equipped with a bidirectional 
logic seeking print head with a head 
speed of 120 cps. This model has 132 
character print columns and is capable 
of throughput of from 45 to 185 lines 
per minute (Ipm). The Model 703 
features a head speed of 180 cps and 
provides throughput rates of from 70 
to 280 Ipm. All models except the 
779 have tractor feed with a paper out 
sensor and use standard computer 
paper, from one to six parts. Model 
779 has pinch roll feed and uses stand- 
ard Teletype roll paper. Prices are 
$1495 for the Model 779; $2095 for 
Model 781; $2500 for Model 702; 
and $3125 for Model 703." 

Circle 538 on inquiry card. 



Universal IO Board 




^z^nm *$ 



This IO board, called a universal IO 
board by the company, has space for a 
40 pin wire wrap socket into which you 
can plug any of Motorola's 40 or 24 pin 
interface integrated circuits; the data 
and control lines are connected to the 
appropriate edge connector pins. All 
other bus connections are brought 
out to a 16 pin socket pad. A +5 V 
regulator and all Molex connectors are 
provided; regulated +5 V and ground 
are bussed among the locations for up to 
35 14 pin integrated circuits. The price 
is $24.95 completely assembled and 
tested. Contact The Micro Works, 
POB 1110, Del MarCA 92014." 

Circle 542 on inquiry card. 



Multifont Printing Capability Added to 
Diablo Matrix Printers 

The Model 24610-03 library card, in 
conjunction with the Diablo Model 2300 
matrix printer, permits users to mix up 
to nine type fonts while printing a single 
document. 

The card, which inserts into the 
printed circuit card cage of the printer, 
can be programmed by Diablo to add up 
to four different type and special symbol 
fonts to the standard font with each 
printer. In addition, the Model 2300 
offers an optional plug-in read only 
memory which contains four additional 
foreign language or special fonts. 

Each of the eight additional fonts 
available through implementation of the 
library card and the read only memory 
recognizes the full 128 character ASCII 
set and can print up to 96 of those char- 
acters. 





|=C~|| 



This intelligent buffered data termi- 
nal, Model IDS 3901, is offered by Inter- 
dyne Company, 14761 Califa St, Van 
Nuys CA 9141 1. It uses a 5Vi inch indus- 
try standard diskette drive and is RS- 
232C compatible. Average access time is 
0.6 seconds. It has a data buffer holding 
up to 128 characters and is capable of 
being edited, a block rewrite capability 
and it allows insertion of blocks or entire 
paragraphs into previously written text. 
An automatic high speed block search 
and verify are included as well as charac- 
ter pattern search under operator control 
or prerecorded instructions. The IDS 
3901 is controlled by 30 ASCII com- 
mands and outputs 13 English messages. 

Other features include storage of 143 
K bytes per diskette, switch selectable 
asynchronous transmission rates from 
110 to 19,200 bps, ASCII text as well as 
transparent binary modes and auto error 
check and retry. 

All this is contained in a stand alone 
desktop unit for connection to printers, 
videos, modems, computers and other 
terminals. By adding the IDS 3901 to a 
keyboard and display, users have an in- 
telligent system with store and forward 
capability for program preparation and 
loading, data entry and storage, text 
editing and off line printing. 

The IDS 3901 is priced at $2050." 

Circle 539 on inquiry card. 



Any combination of the eight addi- 
tional fonts and the standard Diablo 
matrix font can be selected by the user 
under program control and can be mixed 
while printing. Among the standard 
fonts from which the user can select are 
German, Norsk, Scandia, Hebrew, 
French, French Canadian, and APL lan- 
guages and symbols, in addition to high 
resolution ASCII and APL. 

The cost of the Model 24610-03 
libraby card in OEM quantities starts at 
$120. For further information, contact 
Diablo Systems Inc, 24500 Industrial 
Blvd, Hayward CA 94545." 

Circle 540 on inquiry card. 



Product Update 

In the June 1978 BYTE (page 178) we 
published a What's New? item describing 
the PET 100, an S-100 bus adapter 
for the Commodore PET computer. The 
manufacturer, HUH Electronic Music 
Productions, has notified us that the 



name has been changed to S-100 MPA. 
The product has been upgraded so that 
it meets the proposed IEEE specifi- 
cations for the S-100 bus and it now can 
be a stand alone processor. The com- 
pany's new address is 1429 Maple St, 
San Mateo CA 94402." 

Circle 541 on inquiry card. 



202 August iS7S O BYTE Publications Inc 



COMPUTER rfCIPUECAL& 
PARTS WCRrSHCf) 

POLY PAKS INTRODUCES THE FIRST MAGAZINE RETAIL STORE 
FOR THE ELECTRONIC MAIL-ORDER HOBBYIST! 




MAIL 
ORDER 



■ ■•t HM M mMiit iii mtwi 



[faflEW 



KEYBOARD & 
ENCODER KIT 



Cat. Ho. BS5O0I Kit $65.00 

Cat. No. 655002 Wired $69.95 
Outputs standard 7 bit ASCII: interfaces with most dati . _ 
Keyboard pre-astieniblecl onto PC board. 2 key rollover. Electr 




MICROPROCESSORS! 
MEMORIES! SUPPORT! 

Order by Cat. No. 893459 and type 
DZ-MA 



0MC8S00L 

13 8080* 

(J 8008 

O1101 

Oil 03 

D2102-L1 

D21U 

Dill! 

□ 1702A 
O 2708 
OMK4200P1 
DMK409S 
OMMUS 

D MMS202 
DMM5203 
aMMS2M 
DMM52G2 
a 8212 
Olill 
D (224 
D8128 
D 8251 

□ 8255 



Description 
8 Bit CPU . 

•ntcpu _ 



Sale 
$34.95 



256 m Static RAM 

IK Dynamic RAM 

IK x 1 Lo-power RAM_ 

256 x 4 Static RAM 

256 x 4 Sixth: RAM 

256 x » EPROM 

•K EPROM 



2K x 1 Dyn RAM . 
8 Bit I/O Port _ 



Communication Int _ 
Porlph Interface 



19.95 

12.65 

7.95 

.69 

1.29 

1.69 

5.95 

2.49 

3.95 

12.95 

3.95 

3.95 

29.95 

2.95 

8.95 

.99 

.99 

3.95 

3.95 

4.95 

8.95 

1130 

11.95 



• Uses MOS Encoder ROM! 

, ., : • 7 LED Test Feature! 

shift lock and carriage return. 4 modes: Normal, control, shift, e 64 key keyboard' 

shift/control. Additional functions can be assigned by user. +5, - m rn^«rf««i5li acrii rki.^.J 

12V6C. 200 ma. Negative or positive logic. Jumper selectable. T , Jl° ^ * A Sift, il TiVx? ! 

Exlcusive test feature...? LED's display the ASCII ratio. * l"'«rt»ce» with- ALTAIR, ; 

Complete kit. nothing else to buy! Size: 13" X 6 1/2 x 1 1/4". 3 lbs. IH1SAI, and morel 





HANDY COMPUTER 
MULTITESTER 

• 1000 ohms per volt 

1 % precision, movement** 
diode protected against 
burnout. Measures DC volts 
0-15-160-1000; AC volts 
0-15-160-1000; DC current 
0-1 SOma; resistance XI 000. 
Sensitivity 1000 ohms/volt 
AC-DC. Uses peullte cell, 
not Included. Site 2 3 / 8 x 
3Vi x 1%". Wt. 5 ozs. 
Cat. No. 85 3921 



oDnaLXjaLXoxioooixoni^ 



HEXADECIMAL MICROPROCESSOR ,., 

Address microprocessors, A 1TII {*£%%ITItf\f 

control computer operated **MM tUill/WL ^ - q- 

eouipment. 2 key rollover. Has KEYBOARD KIT! Stl 

20 keys. 16 encoded. 4 external to *"** "l* Of 

be assigned by user. Output 4 bit "*■ z lhs - 

binary. Also, an EXCLUSIVE • 4 bit Mnary/haxadscJmal output plus strobe! 

FEATURE. . . 4 leda display the • New! Improved design! Save* you time! 

binary output TTIVCMOS • Keyboard pre-asMmblecJ onto PC board! 

compatible, requires +5, „, „ 

12VDC. Complete kit] Nothing Cat No. 865009 Hexadecimal Kit $34.95 

else to buy! With instructions. Cat. No. •SS010 Hexadecimal Wired $3 9.95 




TTL'S 

T iT« 

, JSH740O 

D5N7401 
.OSN7403 

GSN7404 
'DSN740S 
,C]SN7406 
I1JSN7410 
'DSN7411 

11 SH 7413 

DSN741C 
'D8N7417 

OSN7420 
[QSN7421 
IDSN7423 

QSH7426 

HSU 14 30 

DSN7432 
' D SN7437 

DSN7438 
IUSN7440 
1 a 5N7443 

DSK7445 
| D SH7446 
IHSN7447 

DSN7448 

USN7450 

D SN7451 

a SN74S4 

DSN7460 

D5H7462 

DSN7470 

DSN7472 

DSN7473 
I D SN7474 

DSN7475 
.DSN7476 

DSN7480 



a SN7483 
DSH7486 
IJSN74S8 
QSN7490 

□ SN7491 
'J5N7492 
OSN7493 
OSN7495 
DSN7496 
O SN74100 
DSN74107 
DSN74109 
DSN74113 
DSN74121 
OSN74I23 
Li SN 74 126 

□ SN74132 
DSN74145 
DSN741S1 
DSN74153 
DSN741S4 
DSN74155 
DSN74157 
OSN74161 
OSN74163 
OSN74164 
DSN74165 
USN74166 
DSN74173 
DSH74174 
OSN7417S 
OSN74177 
DSN74179 
DSN74180 
DSN74190 
DSN74192 
DSN74193 
DSN74194 
D5N74197 



Low Power ICs* 



Order By Cat. Ho. 883667 8. Type No. 
Sale I D 74LS132 



1 O74U00 

> D 74LS02 
>D 741.504 

O 74LS08 

74L510 

Q 74LS11 

a 74LS13 

D 74LS14 

D 74LS20 
la 741.52 1 
,0 74LS22 
1 a 74L527 
I'd 74LS30 
x-D 74LS32 

> D 74LS37 
JD 74LS38 
! O 74LS42 
1 74LS47 

D 74L574 

D 74LS90 

D 74L592 

LI 74L593 
in 74LS109 
lO 74L9112 

> n 74LS1 13 

HtltltllllRI 



74L5138 
D 74LS139 
Q 74LS151 
D 74LS153 
D 74LS1SS 
D 74LS160 
D 74LS161 
O 74LS162 
D 74LS163 
D 74LS168 
D 74LS169 
□ 74LS173 
a 74LS174 
D 74LS190 
74LS191 
a 74LS192 
D 74LS193 
D 74L5195 
D 74L5196 
D 74L5197 
D 74LS257 
D 74LS258 
74LS266 
74LS366 
O 74LS3S8 
D 74U390 



D CD40O0 
D CD4001 
D CD4O02 
D CD4006 
D CD40O7 
D CD4008 
D CD4009 
D CD4010 
O CD4011 
D CD4012 
OCD4013 
O CD4014 
a CD4015 
D CD4016 
D CD4017 
D CD4018 
D CD4019 
D CD4020 
n CD4021 
CI CD4022 



********* LINEARS********t 



aljti301V,H 

O LM307V,N,H 
DLM308V 
D LM309K 
,DLM311V 
. .DLM320T-6 
I D LM340T4 
t D LM340T-12 
1DLM340T.15 
■DLM340K-3 
'DLM340K.12 
'C1LM340K-15 
D LM340K-18 
O1M340K-24 
D LM322N 
. OLM324N 
.(DLM339N 
1DLM377N 



POLY PAKS "CHIPS" AWAY 
1C AND CRYSTAL PRICES! 

Order by Cat. No. BS404S and Type No. 



DICM7205 
L1AY3-85001 
DAY 5-9 100 
DAY5-9200 
DMM5330 
a 8038 



Stop' 
6 TV 



Came* _ 



Telephone Dialer _ 
Repertory Dialer _ 

4V, DlBltDVM 

Volt Control Osc . 



UKR2370-139 BCD Encoder ROM _ 
OKR2176-ST ASCII Encoder Rom _ 
D11C90DC 650MHE Preacaler _ 
350MHI Prescaaar _ 



Touch Ton Chip - 



□ 95MMDC 

DMC14410 

DMK2002P Char Gen. (aim 2513) 

D 72078/7208 Fraq. Counter pair _ 

O ICM7107 3 '. Digit DVM/DMM_ 



DMM9369 
03.S79MHI 
D l.OOMHl 
D3U768MHZ 

GULN230O 

DHC4195 

DTVR20O0 



60Hz tlmebeee IC . 
Tknebas. Crystal _ 
Touchtona Crystal - 



Stopwatch Crystal . 

._ tejV 
rllth Power 723 Volt Rac 



Dual 5 Volt Trackln, 



Sale 

. $14.95 
9.95 
_ 12.95 
_ 9.9S 
4.95 
. 4.95 
_ 6.95 
■„ 14.95 
_ 14.95 
8.88 
_ 6.9S 
. 3.95 
.. 24,95 
_ 12.50 
_ 1.95 
_ 1.95 
. 5.9S 
4.95 
1.19 
2.95 
.59 



(■MOS 



Order By Cat. No. 
8S2320 & Type No. 



$ .25 

.25 
.25 

1.20 
-25 

120 
.59 
.59 



1.20 
.45 
1.20 
1.20 
.35 
1.25 
1.25 
1.25 



O CD4023 


.25 


□ CD4024 


.90 


D CD4025 


.25 


D CD4027 


.49 


D CD4028 


1.10 


D CD4029 


1.20 


□ CD4030 


.45 


D CD4032 


.75 


a CD403S 


140 


CD4040 


140 


□ CD4041 


.99 


D CD4042 


.89 


a CD4044 


.99 


D CD4046 


1.50 


D CD4047 


2.50 


D CD4049 


.45 


D CD4053 


.89 


D CD4066 


.90 


D CD4071 


.25 


D CD4072 


.39 


D CD4077 


.69 



S1UCON POWER 
STUD RECTIFIERS! 

Order by Cat. No. Amperage and voltage. 
SO AMP 2S0 AMP 

(1169727) (K8S685) 



12 AMP 
PIV (X8I727) 

□ 50 5 .29 
□100 .36 
n 200 AS 
a 400 .61 
u 600 .79 

□ 800 .90 



"ȣ BRIDGE RECTIFIERS! 

2 AMP 6 AMP 10 AMP 25 AMP 

PIV (MS1346) (DBS2456) (U8S2447) (1)852273) 



o 50 

□ 100 

□ 200 
a 400 



.58 
.69 
.69 
.89 
.99 
1.19 
1.25 



$ 88 

.99 
1.19 
1A0 

1X9 
1.95 

2.25 



S1.05 
1.15 
1.29 
1.79 
1.95 
Z2B 
2.50 



S1.20 
1.2S 
1.95 
2.95 
3.95 
4.95 
5.50 



Or.r by Cat. No. Amperage and Voltage 



MIX-N-MATCHowas $16.88 
DUAL 
POWER 
SUPPLIES 

• 1 Amp each voltage! 
2 Amp* total! 



A new concept in power rnipply 
tlesiirn. Chooae from any one of 
four popular poeittvc and 



regulators and large heat sinks. 

Pita easily into gadget boxes or 

cabinet of your own design. 

Rosy to assemble with step- 
•Jat. NO. Sale hystep instructions. (Includes 

D8S3995 +5 -5 $16.68 PC board, transformers, line 
D 853996 +5 -12 17.B8 cortl, capacitors, rectifiers, hoot 
D8S3999 +12-12 18.88 sinksnmlh'warcl.Complctckit. 
D 854003 +15 -15 1938 nothing else to buy. Wt. 10 lbs. 



COMPUTER 
GRADE 



a 8,000 
□ 13.000 

■CAPACITORS? itooo 

J Order by Cat No. ° 22,000 

Z IBH2 and value! ° «.™ 



Sale a 

S2.7S . 

2.75 J 

12 150 ■ 

75 3.95 ■ 

30 250 ■ 

30 3.95 ■ 



50 



DISCRETE LED'S 



$ .75 
1.10 
1.35 
1.75 
2.25 
2.75 



54.95 
6.50 
750 
850 
1950 
1150 



DIP SWITCHES 

_ Cat. No. switches Seta 

Q •• 3668 2 $.77 

D 8S 366S 3 .88 

U as 3021 4 .09 

O 8S 3671 e 1.29 



EECO 10-POSITION BCD 
THUMBWHEEL SWITCH 

1-2-4-8 BCD encoding! „ . 
PoBitions labeled 0-7, F. L. » 'or 
(K coded for S. L coded for 94. 
'.'I. White numerals on 8 
blnck bnekground. Eeco 800 I 
Buries. iy 4 x IV* x V a " - 
Cat. No. 8S384Q 



$1.49 



6 for $1.19 

«_i i iu ■ Cat. No. Description Similar to 

Order In multiples „ (82135 Jumbo Red MV5053 

of 6 of each type! a 85 1944 Jumbo Yellow 

□ 8S2136 Jumbo Green 

DJUMBO 34" h a 862785 Medium Red 

riMFnillM 94" ° 8S2788 Medium Green 

i jmr-uium ^4 D ,,2,3, Mh . r0 B ,d 

D MICRO .21"n8S1948 Micro Yellow 

(TO-18) t: 852140 Micro Green 



XCS56Y 

XC556G 

XC22 

XC22G 

XC209 

XC209Y 

XC290G 



wCwtm rfc"J*T latJat ffR A A A WMWwtmm mwTltWwrFlfltyttrm A AAdV A 

I "RED" LED READOUTS! 
a. low a. 20C each 

Description 



Cat. No. 
o 851890 
11 851503 
o 851273 

□ 8S3093 
1 8S3161 

o 8S3512 

□ SS2949 
O 8S2950 
n 6S34S3 
,n 852485 
-J 852256 

'Common Anode 



MAN-3 
MANX- 
MAN 1" 
MAN-72 equal* 
MAN-74 eoual" 
FND369" 
FND500' 
FND507- 
727-Dual" 
727-Oua! - 
747* 
"Common Cathode 



5 lor 51. 00 J 
2 for $1.19 

51.00 J 

SI. 19 ♦ 

$1.19 

S1.00 

$150 

$150 

$250 

$250 

$155 



*********************% A*^s^*-^r - A" A A *** 



COMPUTER GRAPHICS 2ior$s. 

• Four 100K potil Wt. 10 01. 

• Chrom* hand* and knob! Cat No. I53808A 



,\ BOXER FAN 

Audible N»>se H <•> •■■ u(e , 
bearinga rated for liVf^.tion. 
Perfectforcooling 





MOTHERBOARD 

EDGE CONNECTOR 

106 pins (S3 each side). 

r~] Uee with IMSAI & ALTAJRI 

1 — ' 0.12S" pin ctra, eoldplsted 

_ -^ _— Va" wire wrap leads. Open 

•P2.5U endB - nt wlde FC baaxda. 

8 oun.Cat. No. .113987 



IC SOCKETS 

as,awai!l7$* a - 

• Low profile, »oldar tall. 

Cat. No. Description Sale 

□ 8S2123 8 pin minldlp % .17 

D 8S110B 14 pin dip .19 

16 pin dip .22 

18 pin dip .25 

14 pin Wire Wrap* .29 

16 pin Wire Wrap* .36 

24 pin MSI .59 

28 pin MSI .59 

40 pin LSI .99 

■Gold Plated 



□ 651309 

□ 8S337B 
a 8S5265 
D8S5266 
D 8S3886 
[J8S3837 
a 863802 



GIANT SALE! MICRO-MINI Cat. No. Contact* Sale 

rOGCLE SWITCHES. nas4036 spdt sue 



• 3A, 125VAC contact* or better 

e Complete with mounting hnrd ware! 



D8S5085 SPDT* 1.39 



DDOClDGDat ] 



Cond. 

□ 20 

□ 26 

a 34 

□ 40 



Sale 

8K. $1.98 
6 ft. $1.98 
5 ft. $1.98 
4 ft. $1.96 



RIBBON CABLE 
AT THIN PRICES 

• Ultra-flat! • 26 AWGE 
e Single color! Indexed! 
Order by Cat. No. 6S3939 and conductors 
imnmrr^rrririmrrrTT^^ ""in nrmrr 

I«bJ5 a " twist ' S^^'WiW' 

CABLE D c,t N °' * s3e80 ** "** 2 "• $19B 



10 AMP POWER TAB SCR'S, 
TRIACS,QUADRACS; CatKo "'V, »*il 

SCR'S 851730 a 100 59 

Order by Cat. No. TRIACS H1448 a 200 58 

and Voltage QIMDRAC5 8(1590 



; TRANSFORMER 

SALE 



^o^> 



* 110VAC Primaries s a u. ■ 

Cat. No. Output V. Amps Each ■ 

66 3399 G.3V SOOma Metal encased S1.98 ■ 

88 3814 6.3V 1A Open frame 62.49 ■ 

68 3412 12V 300ma Open frame $1.96 pj 



1N4000 Epoxy Rectifiers 



ventillation. 



•"P?!'". * more T-BUde 






1M4002 
1N4003 
1N4004 

1M4005 
1N4006 
1N4O07 



Volts 
50 
100 
200 
400 
800 
800 
1000 



Sale 

10 lor 

10 lor 
10 for 

10 for 
10 for 
10 for 

10 for 



159 



WRITE 
FOR 

FEATURING: 

• Computer Components 
. e Over 400 Assortments! 

85 * Digital Clocks, DPM'a, 
and Stopwatches! 
e HI-FI Stereos-Speakers 

• Solar Energy! Semi's! 



POLY PAKS 1978 
CATALOG 



1.49 a Teat Equipment! 

a Fiber Optical PluaMore n' Morel 




45) COPYRIGHT 1978 - POLY PAKS INC 



Circle 303 on inquiry card. 



Term*: Add postage Rated : net 30 
Phone : Wakefield, Mass. (617) 245-3829 
Retail: 16-18 Del Carmine St.. Wakefield, 
MINIMUM ORDER — $6.00 

POLY PAKS 

P.O. BOX 942 -S8 
LYNNFIELD.MA- 

IZIP 1 940bbbbbbbbb1 



BYTE August 1978 203 



WE SHIP FROM STOCK 

TELETYPE MODEL 43 
Only $985 

300 baud, full ASCII character set, 132 
column width, 30 cps, quiet, light-weight, 
dependable. With RS 232 $1085 

TECHNICO 9900 16 BIT COMPUTER KIT S299 

RCA VIP KIT $230 

EX-150 ELECTRONICS EXPERIMENT KIT S65 

HAZELTINE 1500 $1045 

HA2ELTINE 1500 KIT S895 

HAZELTINE 1510 $1165 

To order: Check, money order, major credit cards. 

$4 shipping. NYC residents add 8% tax. 

We have no reader inquiry number. 

Please write or phone. 

OWENS ASSOCIATES, DEPT. B-A 

147 NORWOOD AVENUE 
STATEN ISLAND, NEW YORK 10304 

Day, Evening, Weekend Calls Welcome! 

(212) 448-6283 (212) 448-6298 



Apple II 
Computers 

available at 

Computer Components 
of Orange County 

Available Now 

Bob Bishop's Speech Synthesizer 

Program for APPLE II 

. . . only $19.95 
no special hardware needed 

• Send for our 
Software list. 

• Sign up for free 
Apple II workshops. 

6791 Westminster Ave. 
Westminster, CA 92683 
714-898-8330 



eded 

m 




NEW SURPLUS PRINTER 

Okidata - CP 110 - Friction Feed 
Un Used, in O.E.M. Factory Cartons. 

• 5x7 Impact Dot Matrix 

• 80 Char/Line 

• 64 Char ASCII 

• 110 Char/Sec. 

• 66 Lines/Min. 

• Accepts 814" 
Roll paper 

Includes - Power Supply, Built in Selftest, 
Parallel Interface, Line Buffer and Cables. 
Housed in a three piece plastic cabinet with 
all control electronics. Retail for over $1,100 

Our Price: 1 ea. $650 10 up $600 ea. 

Operating Manual Included. 
Service Manual $20 Supplies Limited 
Shipped Freight Collect. Send Check or M.O. 
Sorry No Warranty Available at these Prices 

INTERNATIONAL ELECTRONICS 
EQUIPMENT CORP. 

P.O. Box 522542. Miami, Florida 33152 



Circle 64 on inquiry card. 



Circle 172 on inquiry card. 



IS YOUR COMPUTER 
DULL? 

Is he hung up in the same old 
loop? 

Is he sorting and searching his 
life away? 

Turn him on to computer 
humor! 

Bring out his hidden talents 

with a sophisticated selection 

of BAUDY JOKES AND 

BYTING WIT! 
Let your computer comic de- 
light your friends with a dazz- 
ling display of wit and whimsy! 
Your computer will have the 
last laugh! 

Shift $5.95 into our register for: 
LAF-TRAK 1 (on cassette) 

Micro-Madness 

P. O. Box 2250 
Pasadena, Ca. 91105 
Specify computer or interface 
type and memory size. 



KIM KOMPUTER HEADQUAHTEHS 
• Send for tree KIM Katelog. 



PAL COMPUTERS USING 6502 SYSTEMI 

• ORDER OUR PAL TECHNICAL MANUAL ($7.25 
Postpaid) which fully describes the KIM Bui and indivi- 
dual Boards in the PAL system. 



INDUSTRIAL QUALITY 
MICROPROCESSOR CARD KITS 

All +5V only, std 4.5 x 6.5. 22/44 edge conn. 

• 4 K RAM $79.95 • 2 K PROM $ 79.95 

• Molherboa'd $39.95 • 4 K PROM $129.95 

• Card Cage S20.0O • Digital I/O $ 59.95 

• Keyboard/Display £89.95 • Cassette Interface $ 37.95 

• 6802/6502 CPU BOARD $99.95 
(SHOWN BELOWI 




• BARE BOARDS. ENCLOSURES. FIRMWARE. ETC. 
SEND $3.70 FOR TECHNICAL MANUAL (INFOR- 
MATION ON ALL ABOVE INDUSTRIAL BOARDS! 



SILVER SPUR 

Electronic Communications Co. 
P. O. Box 365. Chino, CA 91710 
or Visit Retail Store: 
13552 Centre! Avenue 



i 171416279366 
1 VISA 

1 Maslercharge 
> Calif Residents Add 
6% Sales Tax 



niiuiijjiiiiijiiiiir 



PET SCHEMATICS 

Anorhur First From "PET-SHACK". 

For only $34.95 you get: 

24" x 30" schematic of the CPU board, plus overc.zed 
schematic: of the Video Monitor and Tape Recorder, plui 
complete ParB Layout-all Accurately and Painstakingly 
drawn to the Minutest detail. 

PET ROM ROUTINES 

Another Breakthrough From "PET-SHACK", 

Complete Assembly Listings of all 7 ROMs, plus identi- 
fied subroutine entry points; Video Monitor, Keyboard 
Routine, Tape Record and PlaybKk Routine, Real Time 
Clock, etc. 

To entice you we are also including our own Machine 
Language Monitor program for your PET using the key- 
board and video display. All this for only $19.95, 
SA TISFACTION GUARANTEED. 

You can have the Monitor program on cassette for only 
$9.95 extra. 

Send check, money order, or Master Charge or VISA 
number and expiration date to: 

PET-SHACK Software House 
Marketing and Research Co. 
P. O. Box 966 
Mishawaka, IN 46544 



Circle 223 on inquiry card. 



Circle 317 on inquiry card. 



Circle 289 on inquiry card. 




IT'S A GREAT BIG COMPUTER WORLD 
But You Only Need 

*-THE COMPUTER CORIMER : 

•SOL - A New Dawn is Here! 

• COMMODORE PET & KIM 
•NORTHSTAR HORIZON 

• IMSAt VDP-B0 

• Memories & I/O Boards - 

•Computer Book Service _ 

• Magnetic Tapes & Disks _ 
•Full Line of Magazines _ 

• Brain Games & Puzzles _ 
•Workshops & Club Information _ 

Visit THE COMPUTER CORNER for ~ 
all your computer needs. Stop in and 
browse — you'll like our personal service. 
THE COMPUTER CORNER 

White- Plains Mall - Upper Level 

200 Hamilton Avenue ™ 

White Plains, New York 10601 _ 

Teh (914) WHY -DATA 

Ample Parkin 
10-6 Dailv & Saturday 



jjf . 1 0-6 Dailv & Saturday . > 

JC/ 10-9 Thursday \ >W 






SALE SALE SALE SALE SALE SALE 
* •SUPPLIES' •SYSTEMS"SOFTWARE- "PERIPHERALS** 




8" FLEXIBLE DISKS 
53428 IBM 3740V S/32. Shugatt. Per Sd S 3.90 

Perlec. Calcomp (send for catalog) 
53803 32 "Hard Sector' 1 . Alt an. Shugirt. 

Pertec, Par Sci, Calcomp & more I 3.90 




5W" FLEXIBLE DISKS 

54256 Single (0 1 ) Sector $ 3-75 

54257 Ten (10) Sector $ 3.75 

54258 Siiteen (16) Sector S 3.75 




TELETYPE MODEL 43 
4320/UVA Keyboard. Pin Feed, TTL $1000.00 
4310AAA Receive only. Pin Feed, TTL $ 90O.00 
TP430035 Model 43 Ribbon $ 5.25 
PP43 A01 Model 43 Paper oin or trie, 3M $ 12.75 




SBCS1000 BUSINESS SYSTEM microcomputer 32K 

2 disk drivel, video terminal, printer, 

cabinet/desk, DOS. BASIC. SOFTWARE I600O 00 




IECC1000 EDUCATOR SYSTEM microcomputer 

32K. disk drive, video terminal, printer 

cabinet/desk. DOS. BASIC. SOFTWARE J560O 00 




S ft D COMPUTER TECHNOLOGY 24 HOURS/7 DAYS 
P.O. Box 1283 (518)463.1091 
ALBANY. NY 12201 









n 



r 



TRS80 



9h§ GmtiMtfatik 

* presents " 

RECIPES (programs) on CASSETTE 

TAPES for your hungry TRS 80 — with 

lots of graphics!! 

All programs written to run on your TRS 

80 — Level I (4k or more RAM). 

Free COOKBOOK (catalog) of cassettes 

with other recipes (programs) included. 

CASSETTE 8010: UFO Battle* 
Checkbook • Draw Poker • Pile High • 
Poker Dice • Snoopy (graphic). 
CASSETTE 8020: Monthly Minder • Slot 
Machine • Dart Throw • Venus Touch- 
down • Number Guess • Tic Tac Toe 

$ 9.SO per cassette, $18.00 for both. 

Send Check or Money Order to 
THE COMPUTER PANTRY 

2224 -C Old Middlefield Way 

Mountain View, CA 94043 

(415)964-4175 

The Pantry pays postage and tax 11 Prompl Delivery 



Circle 65 on inquiry card. 



Circle 309 on inquiry card. 



Circle 77 on inquiry card. 



Circle 353 on inquiry card. 




$199.95 

AS IS 



IBM® Selectric-Based 

I/O Writers 

Excellent Hobby Printers 



$249.95 

WORKING & 
CLEANED 



Series 72/731 
Heavy Duty 
8 1 / 2 " Platten 



All Solenoids 
Original Documentation 
While Supply Lasts 



SUPER SALE 

These terminals are from a large airline reservation 
system. They are heavy duty and were under continuous 
maintenance. The units have been in storage. We make 
every effort to ensure that all essential parts are included. 
Most work when plugged in. No warranties are given or 
implied. 
Conversion Kits. 

1 . Conversion instructons, P C board for printer only using soft- 
ware approach $59.95 

2. I/O kit makes the unit into a conversational terminal. Instruc- 
tions, P C board, components for a parallel or RS232 interface. 
Will work with any IBM terminal $249.95 

3. Completely converted unit and assembled interface for I/O us- 
ing kit $999.95 



Card reader by HP with RS232 interface $299.95 

Printec line printers, parallel interface $1500.00 

Honeywell 516 &316 mini's, make offer. Cables, used 11 
conductor, 100 ft with connectors $9.99 

Electronic parts and circuit boards 1/4 lb bag $4.99 



Check, Money Order, Cash. Personal checks require 3 
weeks to clear. No COD's. Units shipped UPS or PP 
collect. Prices Net FOB Tulsa 

SUPER SURPLUS SALES 

P.O. BOX 45944 TULSA, OK 74145 1-918-622-1058 




4S01 STATIC, m Id OUT 4096*1 M-MOS RAH 



QINCKAL 

DESCRIPTION 
Part Number 4801 
is a 4K semicon- 
duel of random 
acceis memory . * 

organized as 4096 l-bit words. II is hilly static and 
needs noclock or relresh pulses. II requires a 
single - 5 volt power supply and is fully TTL com- 
patible on input and output lines The *80i is 
packaged in a convenient 18 pm dual-in-line 
package 

FEATURES 

■ Single -SV Power Supply 

■ 4Kii Organization 

■ Replaces 4 1024x1 Static RAMs 

■ Completely Static-No Clocks or Relresh 

■ 18Pm Package 

■ Acceta/Cycle Times 600 neec ma> 
• 2SO mw Typical Operating Power 

e Separate Oata In and Data Out 

■ TTL Compatible I/O 
a Three Slate Outputs 

e Data Bus Compatible I/O Function 




4804 STATIC, TTl IN OUT 1024i4 K-Mti RAM 

OCMEUL 
DESCRIPTION 

Pan Number 4604 
is a 4K semicon- 
duclor random 
access memory 

organized as 1024 4- bil words, It is fully static and 
needs no clock or relresh pulses. It requirea a 
single S vol! power supply and is fully TTL com- 
patible on input and output lines The 4004 is 
packaged in a convenient IB pin dualm-line 
package 

FEATURES 

■ Single - 5V Power Supply 
e IKM Organization 

> Replaces * 1024* i Static RAMs 

■ Completely Static-No Clocks or Refresh 
e 18 Pm Package 

• Access/Cycle Times 600 nsec max 

■ 250 mw Typical Operating Power 
e Common I/O Bus 

■ TTL Compatible I/O 

■ Three Stale Outputs 



4801 or 4804 4K RAM's 

8/J60.00 16/5100.00 



7608 North 27th Avenu* 
PnoeniK. Amaru 85021 
(60?) 9959352 

10 AMP REGULATORS 
78P05 

OEHERAL DEtCflimOM - The „A 70PO5 is a 3-lermina. positive 5 V hybrid regulator 
capable of delivering 10 A This device t| virtually blowout proof and contain* all the 
protection features inherent in monolithic regulators such aa Internal short-circuit 
current limiting and thermal -overload protection The ».A78PO£ is packaged in e 
hermetically sealed TO-3 providing 50 W it 25'C case The hybrid consists of a 
monolithic control chip driving a rugged Mesa tranuator 

The high output current is achieved through new design technique without sacrificing 
the regulation characteristic! of the controlling elements The same process is 
employed m the construction o* the 10 A reguleto- . j provide the seme high reliability 
Obtained in the »A7«H05 5 A regulator 



COMWCTIOM DHAOIIAMI 

TOO PACXAOf 

(TOPVIEWl 




10 A OUTPUT CUHRIHT 

tHTtRMAL TMeeaaJU. OVMLOAO PWOTf CTIOM 

tHTEPlMAL SHOett-CMICUtT CUeMNT UMfT 

LOW OftOf-OUT VOLTAOC 1 J V AT IS A 

M W eowepj OtMft>AT10« 

ptM-ron-atN compatski with tm* ^Artm*. ^tatim and mm 
tTin. too PACiuat 

78P05SC SI2.95 

5p.es 60 

HI POWER RECHARGEABLE CELL 

Brand new Gate* gelled electrolyte lead-acid energy call. 2 Volts, 5 

Amp Hour I Make high power stand-by supply for portable gear or 

computer systems. 

GGC-0205 $5.35, 4/S27.00 

MULTI-CHANNEL 8 BIT A/D CONVERTER 

Foirchilds' new 6 channel anolog-to digital converter has a lot going 

for it. Full scale correction capabilities, ratiometric conversion and 

wide input dynamic range. 

Micro-processor compatible, it combines the multiplexer, decoder and 

sample-and-hold functions with converter to save board space and 

eliminate external parts. It provides 8 bit, + i LSB conversion in 300 

uSec featuring auto-zero ond dynamic range all the way to ground. 

UA9708 In 16 pin plastic DIP J7.95I 



INTEGRATED TONE RECEIVER 



MK5102(N)-5 



FEATURES 

O Detects all 16 standard DTMF digits 

D Requires minimum external parts count tor 

minimum system cost 
a Uses inexpensive 3.579545 MHz crystal for 

reference 
G Digital counter detection with period averaging 

insures minimum false response 
D 16-pin package for high system dei sitv 
O Single supply 5 Volts: 10% 
U Output in either 4-bit binary code or dual 2-bit 

row/column code 
n Latched outputs 

DESCRIPTION 

The MK5102 is a monolithic integrated circuit 
fabricated using the complementary-symmetry MOS 
(CMOS) process. Using an inexpensive 3.57954S MHz 
television colorburst crystal for reference, the 
MK5102 detects and decodes the 8 standard DTMF 
frequencies used in telephone dialing. The require- 
ment of only a tingle supply end its construction in a 
16-pin package make the MK5102 ideal for appli- 
cations requiring minimum size and external parti 
count. DETECTION FREQUENCY 



Low Group t 


H>oh Group i 


Row t ■ 697 Hz 
Row? - 770 Hi 
Row 3 - 852 Hr 
Row 4 ' 941 Hr 


Column 1 - 1200 Hi 
Column 2- 1336 Hi 
Column 3 • 1477 Hi 
Column 4 ■ 1633 Hi 



). NO M'l-t' #»ti C O.O. will r» 

UPSC.O.O •uiMi» II ih sj„, , 



MKm ft iuoxk i la ch*ne* *hmui ' 



i»'"B(j'imi, oil 0' Hock on in <l«m, <( 



MK5102N-5 $34.95 

Specs 50 

600 Ohm to 600 Ohm C.T. transformer $1.95 

P. C. BOARD TERMINAL STRIP 
Molded body encloses poslive screw activated clamp 
which will accomodate wire sizes 14-30 AWG. Contacts 
ond pins are solder plated copper. Pins are on .200 
inch (5.08mM) for standard P. C. mounting. lOAmp 
rating. Compare our prices before you buy. 






fttiS, .cW— h net—AeiBB Men u 



I C.x. a. ...O M.. 



4 pole TS-2504 
8 pole TS-2508 
1 2 pole TS-2512 



Circle 381 on inquiry card. 



BYTE August 1978 205 



Unclassified Ads 



MUST SELL: Heathkit H-8 & H-9 Terminal, 
assembled and operational. H-8: 16 K program- 
mable memory, serial-cassette 10, cables, case & 
power supply. H-9: 12 x 80 characters, full cursor 
control, etc. Includes all software and manuals. 
Sell together or consider separately. $1400, ship- 
ping paid in US. Charles W Wood, 215 N Carswell, 
Whiteman AFB MO 65305. (8161 563-5094 
nights or weekends. 

WANTED: Printer, CRT terminal, and digital 
cassette recorder. Printer should have upper and 
lower case, ASCII code, RS-232 interface, type- 
writer quality output such as Diablo, IBM, Qume 
(no dot matrix), with or without keyboard; CRT 
Terminal with 80 character line width, block mode 
transmit, upper and lower case, RS-232; digital 
cassette recorder capable of working with printer 
or CRT terminal. Please indicate price, operating 
features, and condition. Norman N Axel rod, 
445 E 86th St, New York NY 10028. 

FOR SALE: New Altair 8800b computer. Includes 
16 K x 8 memory, audio cassette record interface, 
serial 2SIO with 1 port, ASCII keyboard. Package 
II assembler, editor, debug and 8 K BASIC 
software by MITS, manuals. Ready to run. $1200 
complete. Tl 743RO 30 CPS printer, $1000. 
Ken Crandall, (415) 692-6693. 

FOR SALE: Friden Flexowriter with attached 8 
level tape punch and tape reader. The Flexowriter 
and punch both have independent code and binary 
modes. The Flexowriter has a row of control 
switches which include single step read, regener- 
ation, delete and stop codes. The shift key shifts 
to a special character set which includes square 
root, delta, rub out and others. The Flexowriter 
has eight resettable tabs and is in good working 
condition. The schematics, modification sheets, 
specification sheets, code chart and metal table 
are all included. $200 or best offer plus shipping. 
Will trade. Anthony Masterson, 3812 Stratford, 
Dallas TX 75205. 

FOR SALE: 16 K M6800 system of SwTPC boards 
and AC30 cassette interface and surplus keyboard. 
Includes Microware 16 task ROM, ACIA and PIA, 
editor, assembler, 8 K BASIC and full documen- 
tation. Excellent appearance and working order. 
Will sacrifice for S600 and deliver in New England. 
Robert Boyd, Woodlawn Au, Kennebunkport ME 
04046. 

WANTED: Complete documentation for VIA- 
TRON, Computer Tape Recorder (Model 5002 

9 track). Must include schematics and parts list for 
unit and model 129000-00 power supply. R M 
Shectman, 14606 Larchmere Blvd. Shaker His 
OH 44120. 

FOR SALE: Ohio Scientific OSI 430B Super 10 
board, fully populated; A to D, D to A, Multiplex, 
cassette interface (1200 baud KC) serial IO parallel 

10 etc. Brand new, all ICs in sockets. Cost $399 
new, sell for $275. Joe Ruby, 6057 Beck Av, N 
Hollywood CA 91606, (213) 985-1519. 



NEW UNCLASSIFIED POLICY 

Readers who have equipment, software or other items 
to buy. sell or swap should send in a clearly typed notice 
to that affect. To be considered for publication, an adver- 
tisement must be clearly noncommercial, typed double 
spaced on plain white paper, contain SO words or less, and 
include complete name and address information. 

These notices are free qf charge and will be printed one 
time only on a space available basis. Notices can be ac- 
cepted from individuals or bona fide computer users clubs 
only. We can engage in no correspondence on these and 
your confirmation of placement is appearance in an issue of 
BYTE. 

Please note that it may take three or four months for on 
ad to appear in the magaiine.* 



FOR SALE: Motorola 6800 based d-2 MPU kit 
complete in unopened package. Includes keyboard 
and display, monitor program, 378 bytes pro- 
grammable memory, serial and parallel IO ports. 
Everything you need except the 5 V 2 A power 
supply to get started in MPUs. Sell for $170, kit 
lists for $235. Steve Kay, 51 Tidewater Ln, Willing- 
bor NJ 08046, (609) 877-1345. 

SACRIFICE: 8 K 8080A system six parallel IO 
ports (add two chips for three more PIOs and 
serial), 3 K PROM board (w/o 2708), 2-4 K 450 
ns low power static programmable memory, TVT-3 
terminal with cursor control, UART brd, 2 K pro- 
grammable memory board. Hall effect ASCI I 
keyboard, HITS audio cassette interface. AM 
boards new, unused, sockets for chips, most boards 
assembled. 5 A supply, edge connectors and card 
guides (extra included), case, documentation. 
Bonus 2-60 chip ground plane wire wrap proto 
boards with 96 gold plated wire wrap sockets. 
Sacrifice at fraction of cost $675 (sent UPS). 
Write for information, David Krivoshik, 18 
Newcomb, Elizabeth NJ 07202. 

FOR SALE: lomec disk drive with single remov- 
able 1 M byte platter, with power supply, rack and 
manual. Also: CDC 300 lines per minute drum 
printer with manual. No interfaces available. 
Machines sold as is, neither have been used for 
over 3 years. Asking $1,000 each. Chuck Gahan, 
12781 Taylor St, Garden Grove CA 92645. 

WANTED: Boards for 8008 computer and manual 
for Mark 8. I hope to find someone who never 
finisheda Mark 8 or MOD 8 and will sell cheaply. 
Larry Bates, POB 664, US 25, Skyland NC 28776. 

FOR SALE: Model 400 M6800 processor (OSI) 
with all documentation, buss holds 8 boards, 4 K 
memory board (3 K on board), and video board. 
All for $150 or best offer. Tony Preston, 15151 
Ripple Dr, Linden Ml 48451. 

FOR SALE: Tarbell cassette interface board. 
Assembled, checked at factory, with manual. 
For price of kit only $120. E Tottle, 2993 
Yorkway, Baltimore MD 21222. 

FOR SALE: MITS Dual Disk System, 8800A with 
heavy duty power supply, dual disk drive, 40 K 
Seals memory, ADM-1 CRT, Okidata printer, 
2SIO board, PROM board, disk boot loader on 
PROM, ACR board. Best offer. J R Morrow, 
6501 Harding Rd, E21, Nashville TN 37205, 
(615) 329-1844 days, (615) 352-0599 evenings. 

FOR SALE: Teletypes, ASR33s, one brand new 
in box with manuals, located in Silicon Valley, 
one used only 25 hours, located in Boston. $500 
each or reasonable offer. If interested in either 
one, send postcard to Ralph Guditz, POB 61266, 
Sunnyvale CA 94088. 

FOR SALE: Centronics 101 A with lower case 
option, parallel Input, switch or software for 
double width characters. Includes stand and paper 
tray. $1200, you pay freight. Digital Group 8 K 
memory boards 400 ns low power. Two at $200 
each, I pay shipping. D L Fade, 729 Milam Bldg, 
San Antonio TX 78205, (512) 222-0077 or (512) 
690-0499. 

FOR SALE: Heath H9 Video Terminal. New and 
completely assembled, $500. Jim Ketcham, 57F 
Sherwood Forest, Wappingers Falls NY 12590, 
(914) 831-1709 evenings. 

FOR SALE: One fully assembled and functioning 
TDL ZPU Z-80 processor card, S250. Includes 
operating manual and 1 K monitor. One fully 
assembled Seals battery backup card with batteries, 
S120. Contact James Stanley. =805, 4045 Link- 
wood. Houston TX 77025, or call 1713) 792-4727. 



WE NEED HELP! High school has a Sol System II 
with 32 K and a video tape camera and cassette. 
We would like to interface the two in order to 
produce digitized computer portraits. Send infor- 
mation or suggestions to Bill Games, Franklin HS, 
Stockton CA 95205. 

FOR SALE: RCA COSMAC VIP. Described in 
August 1977 BYTE, page 30. Original cost $275 
in kit form. Will sell for $200 complete in running 
order. Albert G Shafer, 683 SW 7th St, Boca Raton 
FL 33432, (305) 395-5633. 

FOR SALE: BYTE volume 1, #1 to date, for 
best offer. Good condition. Will pack securely 
and ship insured. Also, complete Vtatron System 
21 with manuals. Includes 9 inch B&W and 19 
inch color video display, robot printer, two 
cassette decks, all in good working order. George 
Weiss, 4625 N Kedzie Av, Chicago IL 60625, 
(312) 588-1885. 

FOR SALE: Diablo Systems Model 31 disk drive 
with Interdata controller. Disk drive is 100 percent 
operational, controller needs some work. Full 
documentation supplied for both drive and con- 
troller. Best offer over $1200. Tom Olsen, 655 
South Fairoaks Ave, Apt H206, Sunnyvale CA 
94086, (408) 737-9353. 

FOR SALE: Technical Design Labs Xitan Alpha 2 
computer. Complete with ZPU, Z-16 (16 K static 
low power programmable memory), SMB (System 
monitor in ROM, 1200 bps cassette 10, two 
serial IO ports, one parallel IO port), mother 
board (eight slots, currently using three), power 
supply, card rack, fan, case. Assembled, tested, 
fully operational with 8 K BASIC, assembler, 
text editor and text output processor supplied 
on cassette. $1400 buys all, including Pioneer 
CT 4141 cassette deck. An excellent starter 
system. J Crowley, 2931 Queen Ln, Philadelphia 
PA 19129, (215)842-1517. 

FOR SALE: Assembled solid state music video 
display and graphics board $125. ($25 under kit 
pricel) Extender card with connector $9. Six slot 
mother board (can be connected to other board 
for expansion) with 4 connector, $25. Good for 
small expandable system. Send SASE to Gary 
Camp, 158 Pago Pago, Pomona CA 91768. 

FOR SALE: TELETYPE Model 33 ASR, with 
pedestal and GE acoustic coupler assembly. Com- 
plete $400. Full set manuals available. Porta-com 
Model PC8110, standard ASCII complete, with 
internal acoustic coupler and manual cost $900, 
selling for $400. Ron Newland, 206 S Highwood 
Av, Glen Rock NJ 07452, (201 ) 444-6872. 

FOR SALE: Sylvanhills DFT-2 flat bed plotter 
with power supply, 17 by 22 inch drawing area, 
mounted on drafting table, could be shipped 
unmounted. Also a Matrix video S-100 bus board 
ALT 256-2, high density graphics with a software 
package for character generation. All items almost 
new. Laddie Chapman, 5715 Klump Av, N 
Hollywood CA 91601, (213) 985-5715. 

FOR SALE: TRS-80 Microprocessor with tape unit 
and RF modulator for use with any TV. Brand 
new, still under factory warranty. Only $499 plus 
shipping. Reason for sale: moving up to more 
powerful system. Write R Lufkin, Star Rt 1, POB 
4, Charlottesville VA 22901 . 

MEDICAL SOFTWARE FOR MICROPRO- 
CESSORS: Now available, patient history, health 
risk profile, differential diagnosis generators, 
clinical laboratory data analysis, symptom, disease 
and drug cross-indexing, bibliography-reference 
retrieval and others. Write R Lufkin, Star Rt 1, 
POB 4, Charlottesville VA 22901 . 

HELP: I couldn't resist the price so I bought it. 
Model-140 Eldorado computer, 8 K core. Selectric 
typewriter. Desk console. Three magnetic tape 
cassette drives. Programs and compilers. Includes 
a whole business accounting package. I need to 
find schematics in case it breaks. G Kilthau, 7142 
Tours, Houston TX 77036. 

FOR SALE: 2 Digital Group 8 K memory boards. 
Uses 2102-1 chips. Professionally assembled and 
running perfectly for three months. $200 each. 
L Langrehr, 2069 N Humboldt Blvd. Chicago IL 
60647, or call (312) 262-1600 X491. 



206 BYTE August 1978 



VISIBLE 

OR 

INFRA RED 



USED FOR CHARACTER 

RECOGNITION FOR 

COMPUTERS WITH 

EXTERNAL CIRCUITS 



MAY BE USED IN 

A VACUUM, 
UNDER WATER, 
HIGH ALTITUDE 



MAGNETIC ENVIRONMENT 
BECAUSE THERE^ IS NO 

HIGH VOLTAGE OR 
MAGNETIC DEFLECTION 



MINATURE SOLID STATE 



202 VIDEO CAMERA KIT 

FEATURING A . 100 x 100 BIT SELF SCANNING CHARGED COUPLED DEVICE 



THIS UNIQUE UPDATED CAMERA KIT 

FEATURES THE FAIRCHILD CCD 202C IMAGE SENSOR 



ADVANTAGES 

• IN THE FUTURE 
WE WILL SUPPLY A 

COMPUTER VIDEO INTERFACE CARD 

• All clock voltages operate at 6V 
reguiring no adjustments 

• Higher video output signal 

• We supply the power board, so only 
a 5V 1 Amp power source is needed 

• The circuitry has been simplified for 
easier assembly 

• Two level TTL output is supplied for 
interfacing 



FEATURES 

• Sensitive to Infra red 
as well as visible light 

• May be used for IR surveillance 
with an IR light source 

• Excellent for standard 
surveillance work, because 
of light weight and small size 

• All components mounted on 
parallel 3 3 /4"x6 1 /2" single 
sided boards 

• Total weight under 1 lb. 




SURPLUS CENTRONICS PRINTERS 

101 - $ 1,150 



* 



34900 




KIT 



306 



900 



We supply all semiconductors, 
boards, data sheets, diagrams. 
Add $75. ° tO aSSemble and teSt resistors and capacitors, and 

8MM lens. 

Add $2.00 Postage and Handling sorry we do not supply the 

case, batteries and 5V supply. 



UNIVERSAL 4Kx8 MEMORY BOARD I 

$69.95 
32-2102-1 fully buffered, 16 address lines, on 
board decoding for any 4 of 64 pages, standard 
44 pin buss, may be used with F-8 & KIM 



PRINTED CIRCUIT BOARD 



7WATTLD 65 LASER DIODE I R Sa95 



EXPANDABLE F8 CPU BOARD KIT 
$99.00 

featuring Fairbug. PSU 1 K-ot static ram, RS 232 
Interface, documentation, 64 BYTE regis. er 



C/MOS (DtODE CLAMPED) 



4001 - 
400? - 
4006- 

4007- 
4009- 

4010 - 



4013 - 
4013 - 
4015- 



18 4016- 
.18 4017 - 
.95 4018 - 
.18 4019- 
.37 4020 - 

37 4021 - 
.18 4032- 
,18 4033 - 
.29 4024 - 
.74 4025- 



.29 4027- 

.90 4028 - 

90 4039 - 

37 4030 - 

90 4035 - 

90 4042 - 

.90 4046 - 

18 4047 - 

.75 4049- 

18 4050- 



.37 4053- 

.80 4055- 

.95 4066- 

.33 4071 - 

.97 4076- 

.65 451S- 
1.35 74C10 
1.50 74C193 95 



370S-8K EPROM 1490 nl) 

2523 STATIC SHIFT RES 

2613 CHARACTER GEN 

351 8 HEX 32 BIT .n 

2102-1 (450ni) „ 

31L02-1 (4BOn»l „... 

MM6270-4KXI OYN 

MK 40O8P ._ _ „ 

21 01-1 254 x 4 STATIC 

21 11-1-256 h 4 STATIC 

2112-1-260 * 4 STATIC 

31 14-4K STATIC RAM 1450ml 
6380/31078 4K DVH.AMIC RAM , 

TMS4O50L 

B204-4K " RQM 

S2S23 

AY-6-1013UART .. 



S 3.46 

i i.iii. 

S 2.46 

S 3.46 

$ 2. 76 

S 850 

S 4.26 

* 3.96 

S 4.86 



2N 3820 P FET ... 

2N5457NFET . . 

2N2646.UJT 

ER 900 TRIGGER DIODES 

2N'6Q28 PRQG UJT 



S 45 
$ .45 
$ .45 

SI 00 

S (if) 



MINIATURE MULTI-TURN TRIM POTS 
100, IK, 2K. 5K, 10K, 25K, 50K, 100K, 
200K, 500K, 1 Mag, 2Meg, $.75 each 3/S2.00 



CHARGED COUPLE DEVICES 

CCD 321 AH2-S12 audio analog S.R $95.00 

CCD 201C 100x100 Imago Senior $95.00 

CCD 202C 100*100 Image Senior $145.00 

VERIPAX PC BOARD S4.00 

This board ii a 1/16"iing1a tided paper epoxy 
board, 4X"x6W" DRILLED and ETCHED which 
will hold up to 21 tingle 14 pin IC't or 8,16 or LSI 
DIP IC't with buun for power supply connector. 

FP 100PHOTO TRAMS S 50 

RED, YELLOW, GREEN or AMBER 

LARGE LED's.2" 6/S1.00 

TIL-118OPT0-1S0LAT0R $ -75 

M0LEX PINS 100/S1.00 

1OOO7S8.00 
10 WATT ZENERS 3.9, 4.7, 5.6, 8.2, 

18,22, 100.150or 200V. ea. S . 

1 WATT ZENERS: 3.3.4.7,5.6,9.1.10. 

12.15, 18, or 22V 7/S1.00 

MC6860 MODEM CHIP $9.95 

MCM6571A 7 x 9 character gun ... $10.75 



TRANSISTOR SPECIALS 

2N6233-NPN SWITCHING POWER $ 
MRF-8004 a CB RF Translator NPN $ 

2N3772 NPN Si TO 3 $ 

2N1546 PNP GE TO-3 $ 

2N4908 PNP Si TO 3 S 

2N6056 NPN Si TO-3 D;ntinf|ton S 

2N5086 PNPSi TO-92 4/S 

2N3137 NPN Si RF $ 

2N3919 NPN Si TO-3 RF S 

2N1420 NPN Si TO 5 3/$ 

2N3767 NPN Si TO-66 S 

2N2222 NPN S> TO-18 5/S 

2N3055 NPN S» TO-3 S 

2N3904 NPN Si TO 92 .... 5/S 

2N3905 PNP Si TO-92 5'S 

2N5296 NPN S< TO-220 . . . . S 

2N6103 PNP Si TO-220 S 

7N3G38 PNP Si TO 5 5/S 

MPSA 13 NPN Si 4/$ 



1.95 
1.60 

1.00 
.75 

1.00 
1,70 
1.00 

.86 
1.50 
1.00 

.70 
1.00 

.60 
1.00 



Full Wave Bridges 



1.30 



1.75 



DIP SOCKETS 

fl PIN .17 24 PIN .35 

14 PIN .20 28 PIN 40 

16 PIN .22 40 PIN .60 

18 PIN .25 



SANKEN AUDIO POWER AMPS 

Si 1010 G 10 WATTS $ 7.80 

Si 1 020 G 20 WATTS St 5.70 

Si 1050 G 50 WATTS $28.50 



TANTULUM CAPACITORS 




Circle 340 on inquiry card. 



BYTE August 1978 207 



Feadep Service 



To get further information on the products advertised in BYTE, fill out the reader sen/ice card with your name and address. Then circle the 
appropriate numbers for the advertisers you select from the list. Add a 13 cent stamp to the card, then drop it in the mail. Not only do you 
gain information, but our advertisers are encouraged to use the marketplace provided by BYTE. This helps us bring you a bigger B YTE. 



Inquiry No. 



Page No. 



Inquiry No. 



Page No. 



Inquiry No. 



Page No. 



1 

4 

6 

7 

8 

9 

10 

12 

11 

14 

15 

* 

20 
17 
25 
18 
19 
30 
31 
29 
32 
33 
34 
35 
38 
37 
36 



39 
40 
43 
45 
50 
51 
62 
64 
65 
70 
71 
75 
74 
76 
76 
77 
79 
80 
91 
95 
100 



AAA Chicago Computer Center 155 

A-A-A-A Computer How's 196 

Administrative Systems 107 

AJA Software 114 

ALTOS Computer Systems 19 

American Digital Development 190 

Anderson Jacobson 133 

Anderson Jacobson 75 

AP Products 126 

Apparat Inc 196 

Apple Computer 14 

Apple Computer 15 

Art-by-Computer 153 

Artec Electronics 79 

ATV Research 182 

Atwood Enterprises 180 

Axiom 5 

Base II 57 

Beckian Enterprises 180 

Bit Basement 182 

BITS 61 

BITS 93 

BITS 95 

BITS 99 

BITS 103 

BITS 111 

Bootstrap Enterprises 89 

Buss 155 

BYTE Back Issues 145 

BYTE Bound Volumes 29 

BYTE Wats Line 144 

California Industrial 185 

Canada Systems 135 

Capitol Equipment Brokers 134 

Central Data 43 

Centronics 63 

Chrislin Industries 190 

Computer Age 196 

Computer Components 204 

Computer Corner 204 

Computer Enterprises 124 

Computer Factory 144 

Computerland 49 

Computer Mart of MA 190 

Computer Mart of NJ 146 

Computer Mart of PA 146 

Computer Pantry 204 

Contract Services Associates 145 

Cromemco 1, 2 

Digital Pathways 134 

Digital Research (CA) 146 

Digital Research (TX) 187 



110 Dynabyte 83 

115 Electrolabs 183 

120 Electronic Control Technology 158 

125 Electronic Systems 189 

130 Electronics Warehouse 191 

132 EMM/CMP 118 
136 EMM/Semi Inc 158 

133 Entelek196 

140 Forethought Products 74 

142 Functional Automation 190 

148 GRT Corporation 31 

149 GRT Corporation 138, 139 
153 Hamilton Logic Systems 182 
156 Hazeltine Corp 34, 35 

160 Heath Company 17 

170 Hobby World 179 

171 Home Computer Centre 196 

172 IEE Corporation 204 
175 IMSAI 11 

178 Innotronics 157 

179 Integrand 131 

180 Integrated Circuits Unlimited 193 
183 International Data Sciences 157 
185 International Data Systems 98 
193 J & E Electronics 196 

195 Jade Company 181 

200 Jameco Electronics 194, 195 

201 Jim-PakCIII 

203 Kalin Associates 190 

207 LMN Electronics 197 

215 Logical Services 62 

217 Manchester Equipment 182 

219 Marinchip Systems 140 

223 Micro-Madness 204 

240 Microware 137 

247 Mikos199 

250 Mini Micro Mart 142 

265 mpi 149 

273 National Digital Diagnostic 190 

275 National Multiplex 69 

280 Netronics121 

283 Newman Computer Exchange 120 

285 North Star Computer 27, CIV 

286 Northwest Microcomputing Sys 7 

287 Northwest Microcomputing Sys 127 

290 Ohio Scientific Instrument 20-23 

291 Oliver Advanced Engineering 125 

293 Osborne & Associates 81 
* Owens Associates 204 

294 Pacific Digital 135 

296 Pacific Office Systems 199 

297 Page Digital 188 



298 PAIA Electronics 105 
292 PanaVise119 

288 PCE Electronics 182 

299 Pentech Inc 182 

301 PerCom Data 46 

266 PerSci 87 

267 Pers & Small Business Cmptr Show 108, 

268 Personal Computing Co 196 

302 Personal Computing '78 76, 77 

289 Pet Shack Software House 204 

312 Pharmassist 196 

303 Poly Paks 203 

304 Priority I 201 

305 Processor Technology 8, 9, 10, 48 

306 PRS Corp 55 

307 Quest Electronics 188 

308 Rondure Co 197 
311 S-100 107 

310 Scelbi 39 

322 Scelbi/BYTE Primer 1 1 5 

* Scientific Research 37, 59 

309 S & D Computer Technology 204 

313 Seattle Computer Products 100 

316 Michael Shrayer Software 71 

317 Silver Spur 204 

320 Smoke Signal Broadcasting 73 

330 Software Records 153 

335 Solid State Music 47 

340 Solid State Sales 207 

350 Southwest Technical Products CM 
354 Stirling Bekdorf 123 

351 Structured Systems Group 13 
353 Super Surplus Sales 205 

356 Synchro Sound 44, 45 

360 Tarbell Electronics 51 

370 Technical Systems Consultants 85 
372 Technico 101 

371 Teletek 53 

377 Transition Enterprises 182 
376 TransNet Corp 60 

379 Trenton State College 128 

381 Tri-Tek 205 

383 Ultra Violet Products 125 

386 US Robotics 182 

384 Video Spectrum Industries 129 

378 Vamp 182 

387 Wameco183 
143 Whales 111 
393 Wintek 149 

395 Worldwide Electronics 196 

400 Xitex136 

*Correspond directly with company. 



109 



BCMB- 

GYTE's Ongoing Mcnilcp Gcx 



Article No. ARTICLE PAGE 

1 Allen-Rossetti: On Building a Light-Seeking Robot Mechanism 24 

2 Forsyth-Howard: Compilation and Pascal on Microprocessors 50 

3 Nelson: Microprocessor Update: The Number Crunching Processor 64 

4 Alpert: Pascal: A Structurally Strong Language 78 

5 Penniman: Philadelphia's 179 Year Old Android 90 

6 Williams: Antique Mechanical Computers, Part 2 96 

7 Mundie: In Praise of Pascal 110 

8 Bowles: Pascal versus COBOL 122 

9 Weems: Designing Structured Programs 143 

10 Ciarcia: Let Your Fingers Do the Talking 156 

11 Hastings: JACPOT 166 

12 Schwartz: Pascal versus BASIC 168 



BOMB's Vacation 

The Bomb Analysis for May 1978 BYTE 
found Mark Gottlieb's "Hidden Line Sub- 
routines for Three-Dimensional Plotting," 
page 49, receiving the highest score, with 
Larry Weinstein's "A Programmable Char- 
acter Generator, Part 1 : Hardware," page 79, 
receiving second place. Since our pocket 
calculator's batteries had run down and the 
charger got misplaced, we'll omit the statis- 
tical analysis this month. . .CH« 



208 August 1978 © BYTE Publications Inc 




im 



electronic components 



One-Stop 
Component Center 



ALABAMA 

Mobile 
ALASKA 

Anchorage 
ARIZONA 

Flagstaff 

Fountain Hills 

Tempe 

Sierra Vista 

Yuma 

CALIFORNIA 

Bel I flower 

Berkeley 

Brea 

Cypress 

SI Monte 

Fon tana 

Fullerton 

Glen dale 

Lake Tahoe, South 

Lancaster 

Long Beach 

Mission Viejo 

Modesto 

Mon terey 

Oceanside 

Palm dale 

Palo Alto 

Pasadena 

Riverside 

Sacramento 

Sacramen to 

Sacramento 

San Bernardino 

San Carlos 

San Diego 

San Diego 

San Fernando 

San Francisco 

San Francisco 

San Jose 

San Luis Obispo 

San Rafael 

Santa Barbara 

Santa Cruz 

Santa Maria 

Santa Monica 

Sunnyvale 

Torrance 

Vallejo 

Van Nuys 

Ven tura 

Walnut Creek 

Westminster 

Whit tier 

COLORADO 

Aurora 

Steamboat Springs 

CONNECTICUT 

Bridgeport 

FLORIDA 

Ft. Lauderdale 

Gainesville 

Lakeland 

Orlando 

Tampa 

Tampa 

GEORGIA 

A tlan ta 

HAWAII 

Aiea 

Honolulu 

IDAHO 

Idaho Falls 

ILLINOIS 

Carbon dale 

Evanston 

Evans ton 

Granite City 

Grove land 

Mount Prospect 

Niles 

Oak Park 

Rock ford 

Schaumburg 

INDIANA 

East Chicago 

Hammond 

IOWA 

Clinton 

Davenport 

Indianola 

KANSAS 

Kansas City 



AUTHORIZED DEALERS 



Lafayette Radio Electronics 

Electronics Corp. of Alaska 

Jim's Audio & Stereo Repair 

P & C Communications 

Computerworld Inc. 

B & S Electronics 

Yuma Electronics 

Earl's Hobby Shop 

Al Lasher Electronics 

Century Electronics 

SCR Electronics 

Kimball & Stark 

Fontana Electronics 

Orvac Electronics Inc. 

Eagle Electronics 

CalPine Electronics 

Consumer Electronics 

Scott Radio Supply Inc. 

Tower Electronics Corp. 

Computer Magic 

Zackit 

Electronic Center 

Radio Shack A.S.C. Palmdale 

Zack Electronics 

Dow Radio Inc. 

Computer Center 

Heathkit Electronic Center 

The Radio Place 

Zackit 

Inland Computer 

& Electronics 

J & H Outlet Store 

Radio Shack A.S. C. Mira Mesa 

Radio-Tronics Inc. 

San Fernando Electronics 

Zack Electronics 

Zenith Distributing Corp. 

Quement Electronics 

Mid-State Electronic Supply 

Electronics Plus 

Lombard Electronics 

Santa Cruz Electronics 

Caps Electronics 

Mission Control 

Sunnyvale Electronics 

SE Electronics 

Zackit 

Thrifty Electronics Supply 

Lombard's Electronics Inc. 

Byte Shop of Walnut Creek 

JK Electronics 

D & S Electronics 

Com Co Electronics 
Norm's TV & Electronics 

Bridgeport Computer 



KANSAS (Continued) 

Manhattan Communications Specialties Ltd, 

Wichita Amateur Radio Equipment Company 

KENTUCKY 

Lexington Radio-Electronic Equipment Co. 

LOUISIANA 

Baton Rouge 

MARYLAND 

Baltimore 



Baltimore 

La Vale 

Rockvil/e 

Silver Spring 

Towson 

Towson 

MASSACHUSETTS 

Med ford 

North Adams 

Waltham 

Worcester 

MICHIGAN 

Ann Arbor 

Flin t 

Grand Rapids 

Lansing 

Mt. Clemens 



Davis Electronics Supply Co. 

Computer Workshop 

of Baltimore 

Everything Electronic 

J & M Electronics 

Computer Workshop 

Computers Etc. 

Baynesville Electronic Inc. 

Computers Etc. 

Tufts Electronics 

Electronics Supply Center 

Computer Mart Inc. 

RM Electronics Inc. 



Airway Electronic Communications 

Hobby Electronic Center 

Micro Computer World 

Fulton Radio Supply Co. 

The Computer Store 



Computers For You 




Lafayette Radio 




Lakeland Specialty Electronics 


MINNESOTA 


Altair Computer Center 


Du/uth 


AMF Electronics 


Eagan 


Microcomputer Systems 


Hopkins 




MISSOURI 


Atlanta Computer Mart 


El Dorado Springs 




Parkville 


Delcoms Hawaii 




Integrated Circuit Supply 


MONTANA 




Billings 


Audiotromcs 


NEBRASKA 




Lincoln 


Lafayette Radio 


North Platte 


Itty Bitty Machine Co. 


Omaha 


Tri-State Electronic Corp. 


NEVADA 


Computer Systems Center 


Las Vegas 


Moyer Electronics 


NEW JERSEY 


Tri-State Electronic Corp. 


Bay v Hie 


Computer Land 


Bricktown 


Spectronics Inc. 


Cherry Hill 


Imperial Computer Systems 


Hoboken 


Data Domain 


Paterson 




Pompton Lake 


Aero Electronics Corp. 




Quantum Computer Works 


Ramsey 


Bridge Elec. Computer Center 




Computer Store of Davenport 


NEW YORK 


Electronix Limited 


Albany 




Kingston 


Electronic Surplus Sales 


New York 




Northwest Radio of Duluth 

Computer Room Inc. 

Heathkit Electronic Center 

Beckman Electronics 

Computer Workshop 

of Kansas City 

Conley Radio Supply 

Altair Computer Center 

Scott Radio Supply Corp. 

Omaha Computer Store 

Cen wry 23 

,.R.S. Communications Services 

Radio Shack Associate Store 

The Computer Emporium 

Hoboken Computer Works 

All-tronics 

Computer Corner 

of New Jersey 

Typetronic Computer Store 



Fort Orange Electronics 

Greylock Electronics 

Computer Mart of New York 



NEW YORK (Continued) 

Rensselaer 

Rochester 

Troy 

White Plains 

Williamsville 

NORTH CAROLINA 

Durham 

Greensboro 

Raleigh 

OHIO 

Bucyrus 

Cincinnati 

Columbus 

Dayton 

Reynoldsburg 

OKLAHOMA 

Guymon 

Oklahoma City 

Tulsa 

OREGON 

Albany 

Be a vert on 

Coos Bay 

Med ford 

Ontario 

Portland 

Salem 

PENNSYLVANIA 

Drexel H : li 



Com-Tech Electronics 

2001 Microsystems 

Trojan Electronics 

The Computer Corner 

Hirsch Sales Co. 

Futureworld 

Byte Shop 

Byte Shop of Raleigh 

Mead Electronics 

Digital Design 

Heathkit Electronic Center 

Altair Computer Center 

Universal Amateur Radio 

Sound Service 

Bits, Bytes & Micros 

High Technology 

Oregon Ham Sales 

Altair Computer Center 

Herrick Electronix 

Portland Radio Supply 

Miller Electronics 

Portland Radio Supply 

Computer Pathways 



Erie 

Hershey 

Murraysville 

Phoenixville 

Pittsburgh 

Wilkesbare 

York 

RHODE ISLAND 

Cranston 

Paw tucket 

SOUTH CAROLINA 

North Charleston 

TENNESSEE 

Chattanooga 

Clarksville 

Knox vi lie 

Memphis 

Memphis 

Oak Ridge 

TEXAS 

Amari/lo 

Dallas 

Houston 

Houston 

San Antonio 

UTAH 

Pro vo 

VIRGINIA 

Alexandria 

Alexandria 

Charlottes\ 

Hampton 

Richmond 

Roanoke 

Springfield 

Virginia Beach 

WASHINGTON 

Beitevue 

Kennewick 

Longview 

Pasco 

Richland 

Seattle 

Seattle 

Spokane 

WEST VIRGINIA 

Morgan town 

Morgan town 

Ripley 



'Hie 



Kass Electronic Distributors 

Warren Radio 

Microcomputer Systems Inc. 

Computer Workshop 

of Pittsburgh 

Stevens Electronics 

Ty dings Company 

Hamline Electronics 

G. Y.C. Company 

Jabbour Electronics City 
Jabbour Electronics City 

Technical Services Inc. 

William's Data Comp Division 

Masstronics 

Byte Shop 

Bluff City Electronics 

Sere-Rose & Spencer Electronics 

Computer Denn 

Computer Encounters Inc. 

CompuShop 

Altair Computer Center 

Interactive Computers 

Sherman Electronics Supply Inc. 

Alpine Electronic Supply Co. 

Computer Hardware Store 

Computers Plus Inc. 

Lafayette Electronics 

Lafayette Radio 

Computers- To-Go 

The Computer Place 

Computer Workshop 

of North Virginia 

Heathkit Electronic Center 

Altair Computer Center 

C & J Electronics 

Progress Electronics 

Riverview Electronics 

C & J Electronics 

C-Com 

Empire Electronics 

Personal Computers 

The Computer Corner 

Electro Distributing Co. 

Thompson's Radio Shack 



CANADA 

Alberta (Calgary) 
Ontario (Williowdale) 
Quebec (Montreal} 

PANAMA 

Panama City 
Panama City 

FRANCE 

Paris 

SINGAPORE 



The Computer Shop 

Home Computer Centre 

Wang's Microcenter 



Electrotecnia S.A. 
Sonitel, S.A. 



Computer Boutique 
Inter-Trade (PTE) Ltd. 



SEE YOUR LOCAL J^ DEALER TODAY! 

For Dealer Information, write or phone JIM-PAK® 1021 Howard Ave., San Carlos, California 94070 (415) 592-8097 



Circle 201 on inquiry card. 



t 



THE COMPLETE 



K 



m 




LookToThe North Star HORIZON Computer. 



HORIZON™— a complete, high-performance microprocessor 
system with integrated floppy disk memory. HORIZON is 
attractive, professionally engineered, and ideal for business, 
educational and personal applications. 

To begin programming in extended BASIC, merely add a CRT 
or hard-copy terminal. HORIZON-1 includes a Z80A processor, 
16K RAM, minifloppy™ disk and 12-slot S-100 motherboard 
with serial terminal interface — all standard equipment. 

WHAT ABOUT PERFORMANCE? 

The Z80A processor operates at 4MHZ — double the power of 
the 8080. And our 16K RAM board lets the Z80A execute at 
full speed. HORIZON can load or save a 10K byte disk program 
in less than 2 seconds. Each diskette can store 90K bytes. 

AND SOFTWARE, TOO 

HORIZON includes the North Star Disk Operating System and 
full extended BASIC on diskette ready at power-on. Our BASIC, 
now in widespread use, has everything desired in a BASIC, in- 
cluding sequential and random disk files, formatted output, a 
powerful line editor, strings, machine language CALL and more. 



EXPAND YOUR HORIZON 

Also available — Hardware floating point board (FPB); addi- 
tional 16K memory boards with parity option. Add a second 
disk drive and you have HORIZON-2. Economical serial and 
parallel I/O ports may be installed on the motherboard. Many 
widely available S-100 bus peripheral boards can be added to 
HORIZON.,. 

QUALITY AT THE RIGHT PRICE 

HORIZON processor board, RAM, FPB and MICRO DISK SYS- 
TEM can be bought separately for either Z80 or 8080 S-100 bus 
systems. 

HORIZON-1 $1599 kit; $1899 assembled. 

HORIZON-2 $1999 kit; $2349 assembled. 

16K RAM -$399 kit; $459 assembled; Parity option $39 kit; $59 
assembled. FPB $259 kit; $359 assembled. Z80 board $199 kit; 
$259 assembled. Prices subject to change. HORIZON offered 
in choice of wood or blue metal cover at no extra charge. 

Write for free color catalogue or visit your local computer store. 



North Star * Computers 

2547 Ninth Street • Berkeley, California 94710 • (415) 549-0858 



Circle 285 on inquiry card.